Помогите мне разобраться с дженериками. Скажем, у меня есть две перечисления как внутренние классы:
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
Спасибо за вашу помощь. Для -Alex-