[2]. 针对你的问题1
{1}. public static final Class<Integer> TYPE = (Class<Integer>)Class.getPrimitiveClass("int");
primitive:单词的含义是“原始的,基本的” PrimitiveClass的含义就是基本类型
Class.getPrimitiveClass("int")获取到的就是int.class
{2}. 楼主注意:强转的类型和赋值左边的类型都是参数化类型,就是含有类型变量的类型,泛型的一种体现。
Java中的泛型仅仅是对编译器有效的,防止非法取值。但是编译器编译完成之后,就对泛型进行了擦除。
由于Class这个类型的源码声明是:
public class Class<T> ......{...} 这个泛型类的类型变量没有使用extends关键字进行限定,因此泛型擦除最彻底,直接擦除到Object类。
所以 上面编译之后,擦除后的代码是:
public static final Class TYPE = Class.getPrimitiveClass("int");