这个列表迭代中的错误是什么

时间:2013-02-01 22:10:37

标签: java collections

Hello我写了跟随代码来迭代节点列表

public class RootImpl {

    private List nodes = new ArrayList<String>();

    public void processData(Object object) {

        for (String node : nodes){

        }
    }
}

此代码不会编译并在行中给出错误:for(String node:nodes)

java:不兼容的类型   必需:java.lang.String   发现:java.lang.Object

这段代码错了吗?

2 个答案:

答案 0 :(得分:2)

字段nodes如果是List类型,这就是编译器不知道其项目类型的原因。您应该使用List<String>

private List<String> nodes = new ArrayList<>();

答案 1 :(得分:2)

您必须使用适当的类型定义变量:

  private List<String> nodes = new ArrayList<String>();

编译器无法看到nodes已被分配ArrayList<String>,因此它将其解释为通用List<Object>并发出此类错误。