-1

您好,我编写了以下代码来迭代节点列表

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

这段代码错了吗?

4

2 回答 2

2

nodestype 的 if字段List,这就是为什么编译器不知道其项目是什么类型的原因。你应该使用List<String>

private List<String> nodes = new ArrayList<>();
于 2013-02-01T22:12:20.980 回答
2

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

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

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

于 2013-02-01T22:12:34.353 回答