Collection<String> a = new ArrayList<String>();a.add("Hello");a.add("World");System.out.println(a.get(0));誰能解釋為什么我不能使用在 ArrayList 類中預定義的 get() 方法?
3 回答

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
為什么我不能使用在 ArrayList 類中預定義的 get() 方法?
在 Java 中,引用變量類型決定了您可以對對象調用哪些方法。
由于您的引用變量類型是Collection
您要為其分配ArrayList
對象的類型,因此您只能調用由Collection
指定類型聲明的方法(在此處查看 API)。
簡單來說,get()
是由 定義的ArrayList
,而不是由Collection
接口定義的。
現在,如果要調用該get()
方法,則需要將引用類型從Collection
更改List
為 ,如下所示:
List<String> a = new ArrayList<>();//No need to specify type for ArrayList
你可以在這里查看List
接口聲明的所有方法,并且是方法之一。get(int i)

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
Collection接口沒有get()方法。List接口有get()方法。
List<String> a = new ArrayList<String>();
a.add("Hello");
a.add("World");
System.out.println(a.get(0));
現在它會正常工作。

森欄
TA貢獻1810條經驗 獲得超5個贊
試試這個,
打印集合中的第一項:
System.out.printf(a.iterator().next());
對于 java8 :
System.out.println(a.stream().findFirst().orElse("not found"));
添加回答
舉報
0/150
提交
取消