Java反射与泛型的深入解析及应用
1. 反射类型与可具体化类型
反射使程序能够获取可具体化的类型信息。每个类标记都对应一个可具体化的类型。若尝试反射参数化类型,会得到对应原始类型的可具体化信息。例如:
List<Integer> ints = new ArrayList<Integer>();
List<String> strs = new ArrayList<String>();
assert ints.getClass() == strs.getClass();
assert ints.getClass() == ArrayList.class;
在这个例子中,整数列表类型和字符串列表类型都由同一个类标记表示,即 ArrayList.class 。
1.1 getClass方法
编译器对 getClass 方法有特殊处理。一般来说,如果表达式 e 的类型为 T ,那么表达式 e.getClass() 的类型为 Class<? extends |T|> ,其中 |T| 是类型 T 的擦除结果。示例如下:
List<Integer> ints = new ArrayList&l
超级会员免费看
订阅专栏 解锁全文
330

被折叠的 条评论
为什么被折叠?



