心法领悟175:“隐藏”方法的分析
Java中并不是所有方法都在API中有说明,如有编译器增加的方法(以及private的方法)。如果使用IDE的提示功能,则可能遇到API中没有的方法。此时正是反射机制大显身手的时候,读者可以参考本实例自己编写一个工具类类分析“隐藏”方法。
package com.mingrisoft.enums;
public enum Position {
HERE, THERE
}
package com.mingrisoft.enums;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Reflection {
public static void main(String[] args) {
Class<Position> enumClass = Position.class;
String modifiers = Modifier.toString(enumClass.getModifiers());
System.out.println("enum类型的修饰符:" + modifiers);
System.out.println("enum类型的父类:" + enumClass.getSuperclass());
System.out.println("enum类型的自定义方法:");
Method[] methods = enumClass.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method);
}
}
}
结果:
enum类型的修饰符:public final
enum类型的父类:class java.lang.Enum
enum类型的自定义方法:
public static com.mingrisoft.enums.Position com.mingrisoft.enums.Position.valueOf(java.lang.String)
public static com.mingrisoft.enums.Position[] com.mingrisoft.enums.Position.values()