首页 > 解决方案 > 有人可以解释为什么 forEach 循环中的分配对象在退出 forEach 循环时变为 null 吗?

问题描述

当我将一个对象分配给 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

标签: javaobjectforeachnullpointerexceptionassign

解决方案


没关系,我发现了问题.. 在我的 forEach 循环在 if 语句中找到正确的对象后,我应该使用中断。不知道这是可能的..我会把这个留给需要的人


推荐阅读