获取Class文件对象有3种方法:
1.Object类的getClass()方法
2.数据类型中的静态变量 类名.Class
3.Class类中的静态方法
public static Class forName(String ClassName)
1.Object类的getClass()方法
2.数据类型中的静态变量 类名.Class
3.Class类中的静态方法
public static Class forName(String ClassName)
注意:ClassName是完整的类名(类路径+类名),Class是类名,故C为大写
测试类
package cn.edu.tju.reflect;
/**
* @author feige
*
*/
public class ReflectDemo {
public static void main(String[] args) throws ClassNotFoundException {
//1.Object类的getClass()方法
Student s1=new Student("阿瑞", 25);
Object o1=s1.getClass();
System.out.println(s1==o1);//false,s1是Student对象,o1是Student类的Class文件对象
//2.数据类型中的静态变量 类名.Class
Class o2=Student.class;
System.out.println(o1==o2);//true,o1,o2都是是Student类的Class文件对象
//3.Class类中的静态方法
Class o3=Class.forName("cn.edu.tju.reflect.Student");//注意:ClassName是完整的类名(类路径+类名),Class是类名,故C为大写
System.out.println(o2==o3);//true,o1,o2,o3都是是Student类的Class文件对象
}
}
Student类:
package cn.edu.tju.reflect;
public class Student {
private String name;
public int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
private Student() {
super();
}
private void showName(String name) {
this.name=name;
System.out.println("name is:"+name);
}
public int showAge() {
return age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}