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