是否可以将ENUM名称和标签放在一起?喜欢:
[
{"COMBUSTIVEL", "Combustível"},
{"TROCADEOLEO", "Troca de Óleo"},
{"PNEUDIANTEIRO", "Pneu Dianteiro"},
{"PNEUTRASEIRO", "Pneu Traseiro"},
{"CORRENTE", "Corrente"},
{"RELACAO", "Relação"}
]
我正在使用Spring MVC,但我认为这无关紧要。
我想覆盖该toString()
方法,但不幸的是它没有用。
我的代码:
public enum Categoria {
COMBUSTIVEL("Combustível"),
TROCADEOLEO("Troca de óleo"),
PNEUDIANTEIRO("Pneu dianteiro"),
PNEUTRASEIRO("Pneu traseiro"),
CORRENTE("Corrente"),
RELACAO("Relação");
private String label;
Categoria(String item){
this.label = item;
}
public String getLabel(){
return this.label;
}
@Override
public String toString() {
return this.label;
}
public String[][] getList(){
Categoria[] values = Categoria.values();
return ?;
}
}
结果是:
[
"COMBUSTIVEL",
"TROCADEOLEO",
"PNEUDIANTEIRO",
"PNEUTRASEIRO",
"CORRENTE",
"RELACAO"
]
可以这样完成:
public static String[][] getList(){
Categoria[] values = Categoria.values();
String[][] result = new String[values.length][2];
for (int i = 0; i < values.length; ++i) {
String[] pair = {values[i].name(), values[i].toString()};
result[i] = pair;
}
return result;
}
为什么是二维数组?您的解决方案可以很好地进行存储,但不能很好地检索值。地图将更有效。它还允许多次存储相同的枚举,而没有限制,除非您添加费力的代码来阻止它。
这个问题问的
2D
数组:的返回类型getList
为String[][]
。它是更好地问OP。我猜这里的API是由一些需要数组的客户端消耗的。