• 反射


    1 字节码文件对象(也叫Class对象)

    javac 是java语言编程编译器。全称java compiler。它将文件HelloWorld.java编译成HelloWorld.class文件,并发送到java虚拟机。虚拟机执行编译器放在class文件中的字节码。

    当用java HelloWorld.class命令去执行该字节码文件时,JVM会把该文件加载到内存,并创建一个该文件对象的字节码文件对象,该对象的类型是Class,注意java中所有的对象都是通过这个字节码对象创建的,

    在一次程序运行过程中,通过同一个类创建的对象得到的字节码文件对象是同一个,

    2 Class对象有四个功能

    1.获取成员变量们  2.获取构造方法们  3.获取成员方法们  4.获取类名

    1>  a.set(p,"张三"); p是new出的对象,张三是p中成员变量的具体的值,a是成员变量对象,这个语句是把成员该对象的成员变量a赋值为张三,如果是获取值用get方法,

     2> 获取构造方法和1 3不同,利用Class获取了Constructor对象后,可以直接利用该对象的newInstance方法生成Class对象,(因为有构造方法就可以创建对象

    3>  eat_method.invoke(p,"饭"); 先利用getMethod获取到方法,再利用invoke函数执行方法,

    3 反射的关键在于:

    先利用Class对象的功能获取指定对象的变量、方法,再创建对象,最后把获取的变量和方法加入到对象中,这样只需修改配置文件中类的路径名和变量、方法名就可以实现不同的类中不同的方法。

     

     
  • 相关阅读:
    Git学习的网址
    (转)读懂diff
    如何让Beamer的logo放在右上角
    测试面试的一些分享
    python学习-使用制表符或者换行符来添加空白
    python学习-python变量的命名和使用
    python学习-运行.py时,python做了啥
    2020年,很特殊的1年
    python md5验签
    postman使用当前时间戳
  • 原文地址:https://www.cnblogs.com/xxswkl/p/13193868.html
Copyright © 2020-2023  润新知