这是Sun认证Java助理学习指南第2章中的一个简单练习,我遇到了麻烦。当我尝试编译下面的类时,我收到以下错误消息:
“错误:类型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 + " ");
}
}
我非常感谢您提前帮助,谢谢!
答案 0 :(得分:6)
您有很多错误,这是一个更新的代码段
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 + " ");
}
}
}
答案 1 :(得分:3)
您可能想要使用班级java.util.ArrayList
。但是,由于您命名了自己的类ArrayList
,这是您的程序使用的类,而您的ArrayList
类不接受任何泛型参数。更改班级名称并导入java.util.ArrayList
。
答案 2 :(得分:2)
有一些奇怪的事情:
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 + " ");
}
}
答案 3 :(得分:1)
您创建的类名为ArrayList。
public class ArrayList {
该示例所涉及的类是java.util.ArrayList。
更改类的名称并导入java.util.ArrayList。
答案 4 :(得分:0)
您的课程不使用泛型,因此您无法使用ArrayList
参数化<Integer>
。除此之外,您似乎没有实施add()
方法或实施Iterable
或其他任何内容。但是要解决泛型问题,你必须有一个类声明,如:public class ArrayList<E>
也许你在尝试import java.lang.ArrayList;
?在这种情况下,您可能需要考虑将您的类重命名为其他内容。
答案 5 :(得分:0)
代码中定义的ArrayList
类(不是java.util.ArrayList<E>
)没有定义任何泛型类型参数,因此您不能使用new ArrayList<Integer>()
,而只能使用new ArrayList()
(相同的变量声明)。
答案 6 :(得分:0)
您应该为您的班级使用其他名称。将您的班级从ArrayList
重命名为其他内容。