[英]for-loop & ArrayList<Integer>
這是Sun認證Java助理學習指南第2章中的一個簡單練習,我遇到了麻煩。 當我嘗試編譯下面的類時,我收到以下錯誤消息:
“error:type ArrayList不接受參數ArrayList hookSizesList = new ArrayList <>;”
import java.lang.Iterable;
public class ArrayList {
public static void main(String[] args) {
Integer hookSizeList;
ArrayList<Integer> hookSizesList = new ArrayList<Integer>();
hookSizesList.add(1);
hookSizesList.add(4);
hookSizesList.add(5);
for (Integer hook: hookSizesList) System.out.print(hook + " ");
}
}
我非常感謝你提前幫助,謝謝!
你有很多錯誤,這里是一個更新的片段
import java.util.*;
public class Numbers {
public static void main(String[] args) {
List<Integer> hookSizesList = new ArrayList<Integer>();
hookSizesList.add(1);
hookSizesList.add(4);
hookSizesList.add(5);
for (Integer hook: hookSizesList) {
System.out.print(hook + " ");
}
}
}
您可能希望使用類java.util.ArrayList
。 但是因為你命名了自己的類ArrayList
,所以這是你的程序使用的類,而你的ArrayList
類不帶任何泛型參數。 更改類的名稱並導入java.util.ArrayList
。
好吧有一些奇怪的事情:
import java.util.ArrayList;
public class MyArrayList {
public static void main(String[] args) {
Integer hookSizeList; //<--looks useless
ArrayList<Integer> hookSizesList = new ArrayList<Integer>();
hookSizesList.add(1);
hookSizesList.add(4);
hookSizesList.add(5);
for (Integer hook: hookSizesList) System.out.print(hook + " ");
}
}
您創建的類名為ArrayList。
public class ArrayList {
該示例所涉及的類是java.util.ArrayList。
更改類的名稱並導入java.util.ArrayList。
您的類不使用泛型,因此您無法使用<Integer>
參數化ArrayList
。 在此之上,您似乎沒有實現add()
方法或實現Iterable
或其他任何事情。 但是要解決泛型問題,你必須有一個類聲明,如: public class ArrayList<E>
也許你試圖import java.lang.ArrayList;
? 在這種情況下,您可能需要考慮將您的類重命名為其他內容。
您的代碼中定義的ArrayList
類(不是java.util.ArrayList<E>
)不定義任何泛型類型參數,因此您不能使用new ArrayList<Integer>()
,而只能使用new ArrayList()
(對於變量聲明也是如此) 。
您應該為您的班級使用不同的名稱。 將您的類從ArrayList
重命名為其他內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.