gpt4 book ai didi

java - 如何将 enum 与 switch 语句一起使用?

转载 作者:太空宇宙 更新时间:2023-11-04 06:22:48 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个这样的枚举:

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 从 Managed 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 语句中“case EAnimals.dogs.getAnimalId():”对我不起作用,我不知道该怎么做。

编辑:纠正了我在从 IDE 重写代码到 stackoverflow 时犯的一些错误。我的实际代码中没有这个错误。

最佳答案

首先,我在您的枚举中发现了一些错误。您需要一个逗号(而不是分号)。您有两个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";
}
}
}

关于java - 如何将 enum 与 switch 语句一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27211639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com