如果我有:
Enum firstEnum(){
A("a"), B("b");
}
Enum secondEnum(){
C("c"),D("d");
}
如何从两个不同的枚举中通过字符串获取枚举值?我需要在方法中使用它。
Enum<?> myEnum = [METHOD THAT GETS ENUM BY STRING FROM TWO DIFFRENT ENUMS];
最佳答案
你可以这样做:
import java.util.ArrayList;
import java.util.List;
interface ValueProvider{
public String getValue();
}
enum FirstEnum implements ValueProvider {
A("a"), B("b");
private String value;
FirstEnum(String s) {
this.value=s;
}
public String getValue(){
return value;
}
}
enum SecondEnum implements ValueProvider{
C("c"), D("d");
private String value;
SecondEnum(String s){
this.value=s;
}
public String getValue(){
return value;
}
}
public class enumTest {
public static void main(String[] args) {
ArrayList<ValueProvider> al = new ArrayList<ValueProvider>();
al.add(FirstEnum.A);
al.add(SecondEnum.C);
al.add(FirstEnum.B);
al.add(SecondEnum.D);
listEnumValues(al);
}
public static void listEnumValues(List<ValueProvider> al){
for(var e:al){
System.out.println(e.getValue());
}
}
}
关于java - 是否可以从多个枚举中通过字符串获取枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59813644/