Java:创建一个在文件

时间:2017-11-11 15:03:28

标签: java class collections compiler-errors

在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

3 个答案:

答案 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();

名称