我正在修改开放的 JDK 以添加功能,我已经遇到过两次这种情况,但没有好的解决方案。
有一个名为 JCStatement
的类延伸JCTree
.
问题:我想转换 List<JCStatement>
进入List<JCTree>
.
很明显,一个类可以引用它的扩展之一,但是当我将它放在列表中时,它就不起作用。
我用过:(List<JCTree>)((List<?>)params)
tocast,它有效,但不是建立在 ant 之上的。 IDE 给我以下警告:
Type safety: Unchecked cast from List<capture#1-of ?> to List<JCTree>
所以必须以某种方式解决这个问题。
感谢任何帮助。
最佳答案
您无法进行此转换。
如果你施放 List<JCStatement>
会发生什么到 List<JCTree>
然后将 JCTree (非 JCStatement)对象添加到该列表中?它打破了List<JCStatement>
类型安全。
关于list - 如何将列表从子类泛型转换为父类泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803005/