课程名称:课程名称:反射——Java高级开发必须懂的
课程章节:Class类的使用
主讲老师:Cedar
课程内容:
-
介绍 Class 类及获取 Class 类型对象的方式
- Class 类,是位于 java.lang包下的可以表示反射的类。
- 获取 Class 对象的方式:
- Class c1 = 对象.class;
- Class c2 = 对象.getClass();
- Class c3 = Class.forName(“全类限定名”);
第一,二种获取Class类型的方式,可以看成对象所属的类中隐藏了一个Class 类型的且属性名为class的属性,提供了get方法。
在Java中,万物皆为对象。类也是对象,类是 Class 类的实例。因此可以通过Class类型的对象获取类的实例,调用类中的属性和方法。
package com.zhoufengbin.reflect;
public class ClassDemo{
public static void main(String[] args){
Foo f = new Foo();
Class c1 = f.class;
Class c2 = f.getClass();
//c1,c2 表示了Foo类的Class类型(类类型)。
Class c3 = Class.forName("com.zhoufengbin.reflect.Foo");//该方式会有异常,需要捕获。
//我们可以通过类的类类型创建类的对象实例。需要有无参的构造方法
Foo f1 = (Foo)c1.newInstance();//该方式会有异常,需要捕获。
}
}
class Foo{
}
以上三种方式创建的 Class 类型的对象全部相等。因为 Foo 类就是 Class 类的一个对象。