我正在修改打開的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