我的代碼聲明Object類型的值的變量:java中修復錯誤:不兼容的類型:java.lang.Object不能轉換爲捕獲#1的?
final Object value;
此變量然後裝載有物體。然後
泛型集合變量聲明,並加載:
final Collection<?> c = (Collection<?>) argumentDefinition.getFieldValue();
收集變量是在上述兩種情況下通用的,用支架和一個問號不本文中通過。
當我嘗試使用集合的Add方法:
c.add(value)
我得到的錯誤信息:
的java:不兼容的類型:java.lang.Object中不能轉換捕獲#1的?
add方法聲明中集爲:
boolean add(E e);
我如何解決這個錯誤?我想我明白髮生了什麼 - 編譯器爲Object不兼容的泛型類型創建一個佔位符。我不能使用原始類型的集合,因爲我試圖消除代碼中的原始類型。我是否需要使用助手功能,如果有的話,究竟如何?謝謝。
請張貼一些演示問題的實際代碼。 – OldCurmudgeon
「,括號和問號在本文中沒有通過。」 - 將文本格式設置爲「代碼」 – pathfinderelite
'集合>'表示:未知類型的集合。它可以是Collection或Collection 或Collection 。你不知道。很明顯,你不能爲該集合添加一個隨機對象:如果該對象是一個字符串,並且該集合是一個集合,那麼這會破壞它的類型安全性。 –