在我的应用程序中,我有一个这样的枚举:
public enum EAnimals {
dogs(1, "white", "big"),
cats(2, "black", "small");
private Integer animalId;
private String color;
private String size;
EAnimals(Integer animalId, String color, String size) {
this.animalId = animalId;
this.color = color;
this.size = size;
}
public Integer getAnimalId() {
return animalId;
}
public String getColor() {
return color;
}
public String getSize() {
return size;
}
我在这里尝试实现的是使用switch case从管理Bean获取动物ID (1,2,..) :
public AnimalsId getDynamicAnimalId() {
switch (animalId) {
case EAnimals.dogs.getAnimalId():
size ="small";
return size;
case EAnimals.cats.getAnimalId():
size = "big";
return size;
default:
return "Error";
}
}
在switch语句中" 案例EAnimals.dogs.getAnimalId(): "不适合我,我不知道该怎么做。
编辑:更正了我在将代码从IDE重写为stackoverflow时所犯的一些错误。我的实际代码中没有这个错误。
答案 0 :(得分:1)
首先,我在enum
中看到了一些错误。你需要一个逗号(不是分号)。您有两个String
字段,但您已声明它们会返回Integer
。
public enum EAnimals {
dogs(1, "white", "big"), // <-- ,
cats(2, "black", "small");
private Integer animalId;
private String color;
private String size;
EAnimals(Integer animalId, String color, String size) {
this.animalId = animalId;
this.color = color;
this.size = size;
}
public Integer getAnimalId() {
return animalId;
}
public String getColor() { // <-- String
return color;
}
public String getSize() { // <-- using an enum in a switch.
switch (this) {
case dogs:
return "small";
case cats:
return "big";
default:
return "Error";
}
}
}