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
这段代码错了吗?
答案 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>
并发出此类错误。