美文网首页
2018-10-20 java反射

2018-10-20 java反射

作者: LoveXiaer | 来源:发表于2018-10-21 21:06 被阅读0次

    java反射基础:

    在运行状态中,对于任意一个类,都能够获取到这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私有的方法和属性),这种动态获取的信息以及动态调用对象的方法的功能就称为java语言的反射机制。通俗点讲,通过反射,该类对我们来说是完全透明的,想要获取任何东西都可以。

    3种方式均可以获取:

    1、源文件阶段:Class clazz1 = Class.forName("全限定类名");//通过Class类中的静态方法forName

    2、class字节码阶段:Class clazz2  = Person.class;    //当类被加载成.class文件时,此时Person类变成了.class,在获取该字节码文件对象,也就是获取自己

    3、已有对象的阶段:Class clazz3 = p.getClass();    //通过类的实例获取该类的字节码文件对象

    操作整个类的所有东西:构造方法、成员变量、成员方法;

    需要注意:

    1、getFiled()方法 和 getDeclaredFiled()方法区别使用,获取私有属性或方法时,需要设置可访问权限;

    2、注意静态的东西可以不用newInstance就可以获取到,但是非静态的需要有对象才能获取到,所以静态变量在getField(null),但非静态的需要有该类的示实例object才可以获取到相应的值,因为非静态的东西是依附于对象,而不是类;

    3、可以指定构造函数来实例化对象;

    https://www.cnblogs.com/whgk/p/6122036.html

    相关文章

      网友评论

          本文标题:2018-10-20 java反射

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