【问题标题】:Java: Creating a class recognized somewhere else in the fileJava:创建一个在文件中其他位置识别的类
【发布时间】:2017-11-11 15:03:28
【问题描述】:

在 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 的静态类型?

【问题讨论】:

  • private List&lt;User&gt; = new LinkedList(); 无法编译。您正在为 outloop 使用原始值而不是泛型。

标签: java class collections compiler-errors


【解决方案1】:

LinkedList(或一般的List)是一个泛型类型。如果不指定通用参数,默认情况下它将被解释为Object。您需要相应地指定您的列表:

List<User> out = new LinkedList<>();

【讨论】:

    【解决方案2】:

    你需要使用泛型:

    List<User> out = new LinkedList<>();
    Iterator<User> loop = out.iterator();
    

    【讨论】:

      【解决方案3】:

      我认为你应该在 User 类中添加一个构造函数

      User(){}
      

      这里

      private List<User> test = new LinkedList();
      

      名字

      【讨论】:

        猜你喜欢
        • 2010-09-09
        • 1970-01-01
        • 1970-01-01
        • 2011-06-02
        • 2018-10-05
        • 1970-01-01
        • 2016-02-29
        • 2014-09-18
        相关资源
        最近更新 更多