importjava.lang.reflect.Method;importjava.lang.reflect.Type;importjava.util.Set;import java.util.*;public classEnumJavaClass {public enumEnumClass{
One("參數變量枚舉一"),
Two("參數變量枚舉二"),
Three("參數變量枚舉三");privateString Description;publicString getDescription() {returnDescription;
}privateEnumClass(String m_Description){this.Description=m_Description;
}
}public static Set analyze(Class>EnumClass)
{
System.out.println("-----------Analyzing "+EnumClass+"--------");
System.out.print("Interfaces:");for(Type t:EnumClass.getGenericInterfaces()){
System.out.print(t);
}
System.out.println("Base:"+EnumClass.getGenericSuperclass());
System.out.println("Methods:");
Set methods=new TreeSet();for(Method m:EnumClass.getMethods()){
methods.add(m.getName());
}
System.out.println(methods);returnmethods;
}public static voidmain(String[] args){for(EnumClass enumClass : EnumClass.values()){
System.out.println(enumClass.getDescription());
}
Set exploreMethods=analyze(EnumClass.class);
Set EnumMethods=analyze(Enum.class);
//將自定義的枚舉類型轉基類枚舉
//根據 values 返回枚舉數組
EnumClass[] val =EnumClass.values();
for(Enum en : EnumClass.One.getClass().getEnumConstants()){
System.out.println(en);
}
}
}
打印結果:
參數變量枚舉一
參數變量枚舉二
參數變量枚舉三
-----------Analyzing class EnumJavaClass$EnumClass--------
Interfaces:Base:java.lang.Enum
Methods:
[compareTo, equals, getClass, getDeclaringClass, getDescription, hashCode, name, notify, notifyAll, ordinal, toString, valueOf, values, wait]
-----------Analyzing class java.lang.Enum--------
Interfaces:java.lang.Comparableinterface java.io.SerializableBase:class java.lang.Object
Methods:
[compareTo, equals, getClass, getDeclaringClass, hashCode, name, notify, notifyAll, ordinal, toString, valueOf, wait]
One
Two
Three