在ClassA.java中我有
class User {
private int id;
private String nick;
public int getId() {
return id;
}
public void setId(int i) {
id = i;
}
public String getNick() {
return nick;
}
public void setNick(String n) {
nick = n;
}
}
public final class ClassA {
private List<User> = new LinkedList();
public Collection<String> getUsers() {
LinkedList out = new LinkedList();
Iterator loop = out.iterator();
while (loop.hasNext()) {
User u = loop.next();
out.add(u.getNick());
}
return out;
}
}
当我编译它时,我收到错误,告诉我在包含
的行上User u = loop.next();
它告诉我u
无法转换为User
。我还应该做些什么来向编译器指出静态类型u
?
答案 0 :(得分:1)
LinkedList
(或一般List
)是通用类型。如果不指定泛型参数,默认情况下它将被解释为Object
。您需要相应地指定列表:
List<User> out = new LinkedList<>();
答案 1 :(得分:1)
您需要使用泛型:
List<User> out = new LinkedList<>();
Iterator<User> loop = out.iterator();
答案 2 :(得分:0)
我认为你应该在User类
中添加一个构造函数User(){}
在这里
private List<User> test = new LinkedList();
名称