美文网首页
反射中getDeclaredMethods()和getMetho

反射中getDeclaredMethods()和getMetho

作者: 倚仗听江 | 来源:发表于2020-12-17 14:13 被阅读0次

在API中关于这两个方法是这么解释的
1:getMethods(),该方法是获取本类以及父类或者父接口中所有的公共方法(public修饰符修饰的)。
2:getDeclaredMethods(),该方法是获取本类中的所有方法,包括私有的(private、protected、默认以及public)的方法。
下面是测试代码

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class People {

    public String name;
    public Integer age;
    public String sex;
    private String love;

}
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Student extends People {

    public String[] subject;
    public Integer grade;
    private String hobby;
}
    @org.junit.Test
    public void test1() {
        Class<? extends Student> aClass = new Student().getClass();
        //获取子类和父类所有的public属性 subject、grade、name、age、sex
        Field[] fields = aClass.getFields();
        for (Field field : fields) {
            System.out.println(field.getName());
        }
        System.out.println("------------------------------------");
        //获取子类自身的所有方法,包括私有属性,但是就无法获取到父类的任何属性了 subject、grade、hobby
        Field[] declaredFields = aClass.getDeclaredFields();
        for (Field field : declaredFields) {
            System.out.println(field.getName());
        }
        System.out.println("------------------------------------");
        Class<?> superclass = aClass.getSuperclass();
        //获取父类的public方法 name、age、sex
        Field[] superFields = superclass.getFields();
        for (Field field : superFields) {
            System.out.println(field.getName());
        }
        System.out.println("------------------------------------");
        //获取父类的所有方法 name、age、sex、love
        Field[] superDeclaredFields = superclass.getDeclaredFields();
        for (Field field : superDeclaredFields) {
            System.out.println(field.getName());
        }
    }

相关文章

  • 反射中getDeclaredMethods()和getMetho

    在API中关于这两个方法是这么解释的1:getMethods(),该方法是获取本类以及父类或者父接口中所有的公共方...

  • java基础-反射

    知识点 反射的基本概念 反射中class类的获取 反射中field类属性的获取 反射中method类方法的获取 反...

  • Java 反射知识点

    反射类概念 获取类Class 获取类 getMethods 和 getDeclaredMethods 区别 Cla...

  • java SE

    public staticMethod[]getDeclaredMethods(Classclazz) { Set...

  • getDeclaredMethods和getMethods的区别

    [getDeclaredMethods](http://download.oracle.com/javase/1....

  • iOS runtime通过selector获取IMP地址

    iOS runtime通过selector获取IMP地址 获取IMP地址有两种方法: class_getMetho...

  • 关于java反射

    //getDeclaredMethods 返回当前类定义的所有方法 (Field同理) //getMethod...

  • 射中

    射中 七子 站在原地 我想回到 靠着清晨的村庄 述说遥远 七子 橘红 火焰 田野 里 到处 洋溢 树在等 七子 穿...

  • Java反射调用

    getDeclaredMethods() :反映此 Class 对象表示的类或接口声明的所有方法,但不包括继承的方...

  • 恋爱脑

    hi girl 男孩走来 对她笑 心儿砰砰不停跳 是否爱神听到女孩的祷告 丘比特之箭射中了 对镜花黄眉眼笑 辗转反...

网友评论

      本文标题:反射中getDeclaredMethods()和getMetho

      本文链接:https://www.haomeiwen.com/subject/iulzgktx.html