获取一个字节码文件对应的Class对象

package com.shujia.day21;

/*
    如何获取一个字节码文件(编译后得到的.class后缀的文件)对应的Class对象

    一个字节码文件,在内存中只会存在一个对应的Class类对象

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。


要想解剖一个类,必须先要获取到该类的字节码文件对象。
而解剖使用的就是Class类中的方法.
所以先要获取到每一个字节码文件对应的Class类型的对象.

 */
public class ClassDemo1 {
    public static void main(String[] args) throws Exception{
        //方式1:对象已经存在的情况下获取
//        Student s1 = new Student();
//        Class<? extends Student> c12 = s1.getClass();
//        Class<? extends Student> c22 = s1.getClass();
//        System.out.println(c12==c22);

        //方式2:直接通过类名的方式进行获取
//        Class<Student> c1 = Student.class;
//        Class<Student> c2 = Student.class;
//        System.out.println(c1==c2);
//        System.out.println(c12==c2);

        //方式3:调用Class类中的静态方法获取字节码文件的Class对象
        Class<?> c1 = Class.forName("com.shujia.day21.Student");
        Class<?> c2 = Class.forName("com.shujia.day21.Student");
        System.out.println(c1==c2);
    }
}
posted @ 2024-08-23 20:47  ていせい  阅读(3)  评论(0编辑  收藏  举报