应用场景

Java获取Class对象的三种方式。

实现

待获取Class对象的Java文件

package domain;

public class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

获取Class对象

package reflect;

/*
    获取Class对象的三种方式:
        1.Class.forName("全类名")。多用于配置文件,将类名定义在配置文件中。
        2.类名.class。多用于参数的传递。
        3.对象.getClass()。多用于对象的获取字节码的方式。
 */
 
import domain.Person;

public class ReflectDemo {
    public static void main(String[] args) throws ClassNotFoundException {
        //1.Class.forName("全类名")
        Class cls0 = Class.forName("domain.Person");
        System.out.println(cls0);

        //2.类名.class
        Class cls1 = Person.class;
        System.out.println(cls1);

        //3.对象.getClass()
        Person p = new Person();
        Class cls2 = p.getClass();
        System.out.println(cls2);
    }
}

总结

获取Class对象的三种方式:

  1. Class.forName(“全类名”)。多用于配置文件,将类名定义在配置文件中。
  2. 类名.class。多用于参数的传递。
  3. 对象.getClass()。多用于对象的获取字节码的方式。