此签名:
public static <E extends Enum<E>> String getEnumString(Class<E> clazz, String s)
在我从Generics的Oracle Java文档中看到的任何地方都找不到。它似乎使用返回的String值的通用类型转换,但不能,因为返回一个真正的字符串。任何见解将不胜感激。
引用此主题的答案:Java: Generic method for Enums
方法:
public static <E extends Enum<E>>String getEnumString(Class<E> clazz, String s){
for(E en : EnumSet.allOf(clazz)){
if(en.name().equalsIgnoreCase(s)){
return en.name();
}
}
return null;
}
答案 0 :(得分:2)
施工
Prefix_001.ext
不是“通用修改标准类型”。
它是一个类型参数(<E extends Enum<E>> String getEnumString(...
)的声明,后跟方法的返回类型及其参数。它指定该方法是通用的,并提供类型参数及其边界。
type参数根本不会修改<E extends Enum<E>>
。它声明了一个有界类型参数String
,稍后在E
的参数列表中使用它来指定可接受的Class<E> clazz
实例集仅限于枚举类型。