• Java反射机制


    什么是反射Reflection:

    Java反射说的是在运行状态中,对于任何一个类,我们都能够知道这个类有哪些方法和属性。对于任何一个对象,我们都能够对它的方法和属性进行调用。我们把这种动态获取对象信息和调用对象方法的功能称之为反射机制。

    所谓反射其实就是获取类的字节码文件,也就是.class文件,我们可以通过Class这个对象进行获取。

    三种方式获取class对象的方式:

    1. 对象.getclass()
    Iphone iph = new Iphone();
    Class cls = iphone.getClass();

      2. 类.Class()

    Class cls = Iphone.class;

      3. Class.forName(“包名.类名”)

    Class cls = Class.forName(“com.lalala.Iphone”);

    在以上的三种方法中:

    方法1,已经创建了Iphone对象,这个时候就不需要去进行反射了,显得有点多此一举;

    方法2,需要导入Iphone类的包,依赖性太强了;

    方法3中的Class类继承自Object类,故可以直接使用,且实参为字符串,即使com.lalala包中的Iphone类不存在,该方法在不运行时也不会报错,所以我们一般选用方法三!

    通过class对象动态创建目标对象:         

    Iphone iph2 = (Iphone)clz.newInstance();//java9之前的方法,不安全
    Iphone iph3 = (Iphone)clz.getConstructor().newInstance(若构造器有参数,该处要填参数);//Java9推荐该方法

     此外还可以通过class对象查看目标类有哪些方法和属性。

  • 相关阅读:
    安装部署NetBeans mysql Tomact joget workflow 环境
    Django-分页扩展
    supervisor linux下进程管理工具
    注意python函数参数的可变变量的传递
    Python远程部署利器Fabric详解
    chrom 扩展程序安装
    supervisor
    python进度条
    os sys区别
    知乎上关于网站 权限系统的回答
  • 原文地址:https://www.cnblogs.com/churujianghudezai/p/11371148.html
Copyright © 2020-2023  润新知