我创建了一个SVGPath LinkedList但是,当我遍历这个列表时,我得到了java.lang.NullPointerException
。它是一个简单的LinkedList,大小为9.在这里你可以看到下面的代码。
public class RiskControllerClass implements Initializable {
@FXML
private SVGPath NA_1; // Alaska
@FXML
private SVGPath NA_2; // NorthWest_Ter
@FXML
private SVGPath NA_3; // Greenland
@FXML
private SVGPath NA_4; // Quebec
@FXML
private SVGPath NA_5; // Ontario
@FXML
private SVGPath NA_6; // Alberta
@FXML
private SVGPath NA_7; // E_America
@FXML
private SVGPath NA_8; // W_America
@FXML
private SVGPath NA_9; // C_America
private LinkedList<SVGPath> regions = new LinkedList<>();
private String nodeID;
public RiskControllerClass() {
regions.add(NA_1);
regions.add(NA_2);
regions.add(NA_3);
regions.add(NA_4);
regions.add(NA_5);
regions.add(NA_6);
regions.add(NA_7);
regions.add(NA_8);
regions.add(NA_9);
System.out.println("Length : " + regions.size());
for (Iterator<SVGPath> iter = regions.iterator(); iter.hasNext();) {
SVGPath sVGPath = iter.next();
System.out.println(sVGPath.getId());
}
}
当我尝试仅打印像System.out.print(sVGPath)
这样的sVGPath时,它会打印所有值null
。但是,当我打印列表的大小时,它会给出9!怎么会这样?如果你能提供帮助和感谢,我将不胜感激。
答案 0 :(得分:3)
简答:java.util.LinkedList
可以包含null
个条目。
详细答案:您的代码位于类的构造函数中,因此某些框架(FXML)几乎不可能将值放入NA_1
,NA_2
,...,{{1 }}。因此,您现在要向NA_9
添加九个未初始化的字段。 Java中未初始化的字段始终为LinkedList
。因此,您的列表包含9个元素,所有元素都是null
。