zoukankan      html  css  js  c++  java
  • 反射

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

     

     
  • 相关阅读:
    C语言(十八)综合
    C语言(十七)链表
    Redis使用
    fastdb 使用
    CentOS 7.3 安装Oracle 11gR2 64位
    VMWare 12 安装CentOS 7.3 和 Red Hat Enterprise Linux 7.3
    Python学习
    Debian的软件包管理工具命令 (dpkg,apt-get)详解
    Debian8安装Vim8
    VMware12下安装Debian8.5
  • 原文地址:https://www.cnblogs.com/xxswkl/p/13193868.html
Copyright © 2011-2022 走看看