Java中Class.getXXX()和Class.getDeclaredXXX()的区别

Java中反射获取类的成员时需要调用getFields()getDeclaredFields()getMethods()getDeclaredMethods()getConstructors()getDeclaredConstructoers()等方法获取FieldMethodConstructor对象,这几对方法的主要区别如下:
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构造方法

你可能感兴趣的:(Java学习)