gpt4 book ai didi

java - 有人可以解释为什么 forEach 循环中分配的对象在退出 forEach 循环时变为 null 吗?

转载 作者:行者123 更新时间:2023-12-02 01:07:49 26 4
gpt4 key购买 nike

当我将一个对象分配给 foreach 循环中的现有对象时,它存在,但是当它退出循环时,它突然变为 null 并抛出 nullpointerexception

Project project = new Project();
for (Project prjct: pps.getProjects()) {

if (prjct.getCode().equals(projectCode)) {
project = prjct;

System.out.println("First occurrence : " + project.toString()); //The object is present here

} else if (!prjct.getCode().equals(projectCode)) {
project = null;
}

System.out.println("Second occurrence : " + project.toString()); //Object is also present here
}
System.out.println("Third occurrence : " + project.toString()); //Throws NullPointerException

最佳答案

您正在循环的每次传递中更新project

当你退出循环时,它不会“突然变成空”;您在循环的最后一遍将其设置为 null。

else if (!prjct.getCode().equals(projectCode)) {
project = null;
}

在不运行程序的情况下,很明显 prjct.getCode() 不等于 projectCode,因为您正在输入 else if block 并设置 project = null

关于java - 有人可以解释为什么 forEach 循环中分配的对象在退出 forEach 循环时变为 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59795751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com