Java基础学习:注解和反射08(哪些类型可以有Class对象)
-
哪些类型可以有Class对象?
-
class:外部类,成员内部类,静态内部类,局部内部类,匿名内部类;
-
interface:接口
-
-
enum:枚举
-
annotation:注解@interface
-
primitive type:基本数据类型
-
void
-
-
代码案例
import java.lang.annotation.ElementType;
?
/**
* 所有类型的Class
*/
public class Test04 {
public static void main(String[] args) {
?
Class c1=Object.class;//类
Class c2=Comparable.class;//接口
Class c3=String[].class;//一维数组
Class c4=int[][].class;//二维数组
Class c5=Override.class;//注解
Class c6= ElementType.class;//枚举
Class c7= Integer.class;//基本数据类型
Class c8= void.class;//void
Class c9= Class.class;//Class
?
?
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
System.out.println(c7);
System.out.println(c8);
System.out.println(c9);
?
//只要元素类型和维度一样,它们的Class对象就是同一个
int[] a=new int[10];
int[] b=new int[100];
System.out.println(a.getClass().hashCode());//21685669
System.out.println(b.getClass().hashCode());//21685669
}
}
?