Java:枚举的通用方法
帮助我理解泛型。假设我有两个枚举作为内部类,如下所示:
public class FoodConstants {
public static enum Vegetable {
POTATO,BROCCOLI,SQUASH,CARROT;
}
public static enum Fruit {
APPLE,MANGO,BANANA,GUAVA;
}
}
与其让两个枚举都实现一个接口,并且必须实现相同的方法两次,我希望在外部类中有一个方法,它可以执行以下操作:
public <e> String getEnumString<Enum<?> e, String s) {
for(Enum en: e.values()) {
if(en.name().equalsIgnoreCase(s)) {
return s;
}
}
return null;
}
但是,此方法不会编译。我试图做的是找出字符串值是否是枚举值的名称,在任何枚举中,无论是蔬菜,水果,什么不是。不管这是否实际上是一个冗余的方法,我试图(重新)编写的方法有什么问题?
基本上我想这样做:
public class FoodConstants {
public static enum Vegetable {
POTATO,BROCCOLI,SQUASH,CARROT;
}
public static enum Fruit {
APPLE,MANGO,BANANA,GUAVA;
}
public <e> String getEnumString<Enum<?> e, String s) {
for(Enum en: e.values()) {
if(en.name().equalsIgnoreCase(s)) {
return s;
}
}
return null;
}
} //end of code