天天看点

Java之反射学习【获取字节码Class对象】

获得类对象的三中方法:

  1. Class.forName("全类名") 方式; 【全类名:包名+类名】
  2. 类名.class  方式;
  3. 对象.getClass()  方式;

参考代码:

public class Test {
    public static void main(String[] args) throws Exception {
        
        Class class1 = Class.forName("demo1.Person");
        System.out.println(class1);

        Class class2 = Person.class;
        System.out.println(class2);

        Person person = new Person();
        Class class3 = person.getClass();
        System.out.println(class3);

        System.out.println(class1==class2);
        System.out.println(class1==class3);
        System.out.println(class2==class3);

    }
}
           

执行结果:

Java之反射学习【获取字节码Class对象】

这三种方式都适用情况:

  • Class.forName("全类名") 方式:

       多用于配置文件,将类名定义在配置文件中。读取文件,加载类;【spring的配置文件中有所应用】

  • 类名.class  方式:

       多用于类对象作为参数,进行参数传递

  • 对象.getClass()  方式: