我为我的班级ArrayList
命名,当我写这篇
List< String> list = new ArrayList< String>();
它提醒我,我不能这样做List
没有参数
更改类名后不再有问题。
有人知道为什么吗?
答案 0 :(得分:2)
错误表明您创建的类ArrayList
没有参数,因为您没有像在代码List<String> list = new ArrayList<String>();
<String>
之后代码的Arraylist
部分就是您的问题。
List<String> list = new ArrayList<String>();
|
|-here
您的类应该创建为public class ArrayList<T>
代码的<T>
部分是编译器抱怨的参数。
但即使你这样做,也会在此之后抱怨,因为你的班级应该实现一个List才能工作,但这是另一个问题。
另请阅读Generics
这是基于你在问题上所说的话。如果您实际实现了java.util.ArrayList
,@ CommuSoft给出的答案会更好。
答案 1 :(得分:0)
如果使用默认的java.util.ArrayList
,List<T>
肯定会考虑泛型类型参数,则代码有效。请参阅此jdoodle。
如果您自己实施ArrayList<T>
,则需要提供源代码。在这种情况下,类的签名应该是这样的:
public class ArrayList<T> implements List<T> {
//...
}
如果您正确实现了ArrayList<T>
,那么唯一的问题是Java可能存在消除歧义的问题。在这种情况下,您需要更明确。或者您明确List
部分:
import your.ArrayList;
//...
java.util.List<String> list = new ArrayList<String>();
或在ArrayList
部分:
import java.util.List;
//...
List<String> list = new your.ArrayList<String>();