码迷,mamicode.com
首页 > 其他好文 > 详细

Class类 获取Class对象

时间:2017-08-28 23:59:21      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:demo   获取   size   虚拟   exception   字符串   define   void   ref   

 

阅读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{

}

  

                            

Class类 获取Class对象

标签:demo   获取   size   虚拟   exception   字符串   define   void   ref   

原文地址:http://www.cnblogs.com/17shiqi/p/7442358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!