簡體   English   中英

for-loop和ArrayList <Integer>

[英]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

好吧有一些奇怪的事情:

  1. 首先,您不要導入java.util.ArrayList。
  2. 您不需要導入java.lang.Iterable,因為java.lang中的類是自動導入的。
  3. 您的類具有相同的ArrayList名稱,這不是一個好主意。 當您編寫“ArrayList hookSizesList = new 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM