是你想要什麼
public class Mango {
static enum Upper {A,B,C}
static enum Lower {a,b,c}
static <SRC extends Enum<SRC>,DST extends Enum<DST>> DST convert(SRC a, Class<DST> classDst){
return Enum.valueOf( classDst,a.name().toUpperCase());
}
public static void main(String[] args) {
System.out.print(convert(Lower.a,Upper.class));
}
}
編輯:
所以,你要小寫/大寫枚舉轉換爲駝峯?只需修改轉換功能:
static <SRC extends Enum<SRC>,DST extends Enum<DST>> DST convert(SRC a, Class<DST> classDst){
for (DST dst : EnumSet.allOf(classDst)){
if (dst.name().equalsIgnoreCase(a.name())){
return dst;
}
}
throw new IllegalArgumentException("Value not found");
}
對不起,我想寫通用的代碼轉換假設我有源類(枚舉類型)爲研究對象,源類名稱和目的地類名 –