我正在修改打开的JDK来添加功能,我遇到过两次没有好的解决方案。如何从泛型子类转换为父类泛型的List?
有一个类名为JCStatement
其延伸JCTree
。
问题:我想将List<JCStatement>
转换为List<JCTree>
。
很明显,一个类可以引用它的一个扩展,但是当我把它放在List上时,它就不起作用。
我使用了:(List<JCTree>)((List<?>)params)
来投射,它可以工作,但不会建立在蚂蚁上。 IDE给我以下警告:
Type safety: Unchecked cast from List<capture#1-of ?> to List<JCTree>
所以这必须以某种方式解决。
我很感激任何帮助。
你不能使用类型转换,也有方法可以帮助你,例如'Collections.copy(DEST名单,名单SRC)'。找到这些方法并选择最适合你的方法。对不起,这个时候找不到他们 – alaster
我编辑了这个文件来删除额外的例子,这是不必要的,并清除标题问题。 –
alaster,你的解决方案几乎可以工作,但我需要一种方法来实例化具有足够空间的'List'副本,List.nil()不起作用。 –
Adriano