Java中反射获取类的成员时需要调用getFields()、getDeclaredFields();getMethods()、getDeclaredMethods();getConstructors()、getDeclaredConstructoers()等方法获取Field、Method、Constructor对象,这几对方法的主要区别如下:
1. getFields()与getDeclaredFields()
getFields()返回类中所有public的字段,包括从父类或接口继承的public字段;
getDeclaredFields()返回本类中声明的所有字段,包括public、protected、private字段,不包括从父类或接口继承的字段
2. getMethods()与getDeclaredMethods()
getMethods()返回类中所有public的方法,包括从父类或接口继承的public方法
getDeclaredMethods()返回本类中声明的所有方法,包括public、protected、private方法,不包括从父类或接口继承的方法
3. getConstructors()与getDeclaredConstructors()
getConstructors()返回类中所有public的构造方法;
getDeclaredConstructors()返回类中声明的所有构造方法,包括public、protected、private构造方法