java获取Class对象的方法

导语:java中的Class类对象是可以人工自然性的得到的,下面是相关介绍,欢迎参考!

java获取Class对象的方法

  获取Class对象有三种方式:

1.通过Object类的getClass()方法。例如:

Class c1 = new String("")lass();

2.通过Class类的静态方法——forName()来实现:

Class c2 = ame("MyObject");

3.如果T是一个已定义的类型的话,在java中,它的s文件名:s就代表了与其匹配的Class对象,例如:

Class c3 = s;

Class c4 = s;

Class c5 = Double[]s;

这里需要解释一下3:请记住一句话,java中,一切皆对象。也就是说,基本类型int float 等也会在jvm的内存池像其他类型一样中生成一个Class对象。而数组等组合型数据类型也是会生成一个Class对象的,而且更令人惊讶的是,java中数组的本来面目其实就是某个类,惊讶中的惊讶是,含有相同元素的相同维数的数组还会共同享用同一个Class对象!其实根据我的臆想,数组的length性质应该就保存在这个Class对象里面。

  Class类中存在以下几个重要的方法:

ame()

一个Class对象描述了一个特定类的特定属性,而这个方法就是返回String形式的该类的简要描述。由于历史原因,对数组的Class对象调用该方法会产生奇怪的结果。

nstance()

该方法可以根据某个Class对象产生其对应类的.实例。需要强调的是,它调用的是此类的默认构造方法。例如:

MyObject x = new MyObject();

MyObject y = lass()nstance();

lassLoader()

返回该Class对象对应的类的类加载器。

omponentType()

该方法针对数组对象的Class对象,可以得到该数组的组成元素所对应对象的Class对象。例如:

int[] ints = new int[]{1,2,3};

Class class1 = lass();

Class class2 = omponentType();

而这里得到的class2对象所对应的就应该是int这个基本类型的Class对象。

uperClass()

返回某子类所对应的直接父类所对应的Class对象。

ray()

判定此Class对象所对应的是否是一个数组对象。