|
1
3
由于您使用的通配符,强制转换是必须的。即
|
|
|
2
0
在使用newInstance()时,必须使用强制转换,这是无法避免的。你的第一个例子很好。 |
|
|
3
0
这是一个有趣的问题。第二种形式避免了对调用结果进行显式类型转换
|
|
|
4
0
尝试
|
|
|
5
0
在if语句之后,您知道clazz是collection的一个子类(即使编译器不知道这一点)。所以你可以投下它:
编译器会抱怨没有在运行时检查强制转换(因为在运行时通用参数丢失),但这没关系。 ... 刚才看到了“asSubclass”方法。执行相同的任务,但会在运行时进行检查-它会像if()那样重新执行测试。 话虽如此,现在每当我看到instanceof关键字时,我立刻怀疑应该使用泛型类型。也就是说,包含上述代码的类或方法应该可以访问参数化的类T并使用类。 |