Class类 获取Class对象

 

阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的

获取Class对象的三种方式(实例采用Person类)

 

方式1:通过Object类的getObject()方法   

 

Person p = new Person();
Class c = p.getClass();

 

方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单)。

 

Class c2 = Person.class;

  

方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可)。

   

Class c3 = Class.forName("Person");

  

 

l 注意:第三种和前两种的区别

前两种你必须明确Person类型.

后面是指定这种类型的字符串就行.这种扩展更强.我不需要知道类名.我只提供字符串,按照配置文件加载就可以了

 

代码演示:

public class ReflectDemo {
	public static void main(String[] args) throws ClassNotFoundException {
		//通过Object类的getObject()方法   
		Person p = new Person();
		Class c1 = p.getClass();
		System.out.println(c1);
		
		//类名.class 获取到字节码文件对象
		Class c2 =Person.class;
		System.out.println(c2);
		
		//通过Class类中的方法forName()
		Class c3 = Class.forName("cn.shiqi.demo1.Person");
		System.out.println(c3);
	}
}

  

class Person{

}

  

                            

posted @ 2017-08-28 08:54  17十七  阅读(376)  评论(0编辑  收藏  举报