public class ReflectDemo { public static void main(String[] args) throws ClassNotFoundException { // 获取Class对象的三种方式 // 1、当类文件没有加载到内存中,还是源代码阶段时,可以用Class类中的静态方法forName(String className)获取Class对象 // String className是全类名(包名+类名) Class clazz1 = Class.forName("com.unit1.test.reflect.Dog"); System.out.println(clazz1); // 2、当类文件编译为class文件加载到内存中时,可以用类名.class获取Class对象 Class clazz2 = Dog.class; System.out.println(clazz2); // 3、当new了类对象时,可以用对象.getClass()获取Class对象,所有的对象都能获取到类的字节码文件,getClass()是定义在Object类中的 Dog dog = new Dog(); Class clazz3 = dog.getClass(); System.out.println(clazz3); // 一个类的Class对象是唯一的 System.out.println(clazz1 == clazz2); System.out.println(clazz1 == clazz3); } }
public class Dog { private String name; private int age; public Dog() {} public Dog(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; } public void eat() { System.out.println("吃"); } @Override public String toString() { return "Dog [name=" + name + ", age=" + age + "]"; } }
标签:name,对象,age,Dog,public,获取,Class,String From: https://www.cnblogs.com/weiduaini/p/17222760.html