我嘗試使用列表,而不是名單Java集合<Object>或收藏<?>
List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error
我該怎麼辦錯了,怎麼投新價值的整數? 也許我應該在我的項目中使用List?
我嘗試使用列表,而不是名單Java集合<Object>或收藏<?>
List<?> list = new ArrayList<Integer>();
...
list.add(1); //compile error
我該怎麼辦錯了,怎麼投新價值的整數? 也許我應該在我的項目中使用List?
List<?>
意味着某種類型的列表,但我們不知道哪種類型。您只能將正確類型的對象放入列表中 - 但由於您不知道類型,所以實際上不能將任何東西放入列表(null
除外)。
除了聲明變量爲List<Integer>
之外,沒有辦法解決這個問題。
那麼有沒有時間使用'通用>'?對於泛型類的操作是否與它所包含的對象類型無關? (爲什麼這些操作會獨立地有用?) –
是的。例如'Class >'有很多不使用類型參數的方法。對於列表>(與List <?extends Object>相同),您可以獲取大小,將其與其他列表(或非列表)進行比較,並從中獲取「Object」。型特異性。 –
List<Integer> list = new ArrayList<Integer>();
...
list.add(1);
List<Integer> list = new ArrayList<Integer>();
泛型類型總是必須是相同的。
List<?> list = new ArrayList<Integer>();
?意味着某種類型,您必須指定Type爲Integer。所以正確的語法是:
List<Integer> list = new ArrayList<Integer>();
有沒有你不能申報清單,清單理由嗎? –
嘗試列表list = new ArrayList(); –
nidhin
@nidhin - 使用原始類型的不好主意 –