解释Java通用修改标准类型

时间:2017-08-16 17:34:41

标签: java generics methods

此签名:

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;
}

1 个答案:

答案 0 :(得分:2)

施工

Prefix_001.ext

不是“通用修改标准类型”

它是一个类型参数(<E extends Enum<E>> String getEnumString(... )的声明,后跟方法的返回类型及其参数。它指定该方法是通用的,并提供类型参数及其边界。

type参数根本不会修改<E extends Enum<E>>。它声明了一个有界类型参数String,稍后在E的参数列表中使用它来指定可接受的Class<E> clazz实例集仅限于枚举类型。