Java泛型T,Class<T>,Class<?>区别
发布网友
发布时间:2024-10-24 15:02
我来回答
共1个回答
热心网友
时间:2024-11-14 06:29
在Java中,T表示一个具体的类,例如String、List、Map等。这些类属于特定实例。
Class则是一个类,它存储了上述特定类的信息。获取Class对象有三种方式:调用Object的getClass()方法、使用Class类的静态forName()方法或直接通过T.class获取。
Class和Class的用法主要出现在反射场景。不使用泛型时,反射创建类时需进行强转,若类型不符会抛出ClassCastException。而泛型Class则无需强转。
Class与Class的区别在于,Class在实例化时需指定具体类,而Class为通配符泛型,?代表任意类型,用于声明时的*。例如声明一个Class变量,但不确定具体类型时,可以使用Class。此外,Class可用于参数类型、方法返回值的定义。