java 中   Class<?> 和Class<T> 的区别

解决方案 »

  1.   

    举例,
    void foo1(Class<?> clazz)
    void foo2(Class<String> clazz)foo1(Date.class)就可以,
    foo2(Date.class)就不行
      

  2.   

    java.lang 
    类 Class<T>
    java.lang.Object
      java.lang.Class<T>
    所有已实现的接口: 
    Serializable, AnnotatedElement, GenericDeclaration, Type --------------------------------------------------------------------------------
    public final class Class<T>extends Objectimplements Serializable, GenericDeclaration, Type, AnnotatedElementClass 类的实例表示正在运行的 Java 应用程序中的类和接口。枚举是一种类,注释是一种接口。每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void 也表示为 Class 对象。 Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。 
      

  3.   

    java中的Class<?>表示可以指向任意类型;
    Class<T>表示的也是任意类型;