Java基础学习:注解和反射08(哪些类型可以有Class对象)


Java基础学习:注解和反射08

  • 哪些类型可以有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
      }
    }
    ?