我无法访问多个ArrayList
元素。代码如下所示,它无法访问值5或6.我的IDE不接受我的代码的最后一个语句System.out.println(specification.get(0).get(0).value);
如何在ArrayList
中获取对象的元素,这是在数组列表中。
class Node {
int value;
boolean explored;
Node(int v) {
value = v;
explored = false;
}
int getValue() {
return value;
}
}
class Board {
ArrayList<ArrayList> specification;
ArrayList<Node> speci_node;
Board() {
speci_node = new ArrayList<Node>(1);
speci_node.add(new Node(5));
speci_node.add(new Node(6));
specification = new ArrayList<ArrayList>(1);
specification.add(speci_node);
System.out.print(specification.get(0).get(0).value); // variable 'value' is not found error....
}
}
答案 0 :(得分:3)
虽然@ YCF_L的回答是正确的,但您也可以指定内部ArrayList
的泛型类型以避免强制转换:
specification = new ArrayList<ArrayList<Node>>(1);
此外,Node
和Board
类需要位于同一个包中,因为value
成员是包私有的,因此无法在{{1}的包之外访问}类。但这似乎就是这种情况......
答案 1 :(得分:1)
你应该像这样投射你的元素:
System.out.print(( (Node) specification.get(0).get(0)).value);
//-----------------|-^^^-|-----------------------------------
这将返回5