获取Class对象的方法及Class类型的一些讨论

(1)Class.forName(className)

(2)classname.Class 如果是数组,则是数组类型[].class

(3)对象.getClass()

例: 

 1 String path = packagename.classname; //包名,类名
 2 
 3 Class c1 = Class.forName(path);
 4 System.out.println(c1.hashCode());
 5             
 6 Class c2 = Class.forName(path);
 7 System.out.println(c2.hashCode());//c1和c2的hashcode相同
 8             
 9 Class c3 = String.class;
10 Class c4 = path.getClass();//path是一个String,所以就表示是String类
11 System.out.println(c3==c4);//true

 

基本类型也有类对象,而且和它的包装类不是同一个类型。

如:

1 Class c5 = int.class;              
2 Class c6 = Integer.class;          
3 System.out.println(c5==c6); //false

某个类(包括基本数组类型)的数组和它本身的类对象也是不同的,数组的维数不同类对象也不同。

如:

1 Class c7 = int.class;               
2 Class c8 = new int[3].getClass();   
3 System.out.println(c7==c8); //false 
4                                     
5 Class c9 = new int[3][4].getClass();
6 System.out.println(c8==c9); //false 
posted on 2016-01-06 15:55  Yohohaha  阅读(257)  评论(0编辑  收藏  举报