Java 无法在 foreach 循环中访问属性

问题描述 投票:0回答:1

真的不明白这里发生了什么。我需要将一个对象的属性(字符串类型)与另一个字符串进行比较,但我无法在 foreach 循环内访问该对象的属性,也不知道为什么。

在下面的代码中,在某些时候第一个打印语句正确打印以下行

TEST:   Panino 1 - Panino 1 - 13

其中p.name和finalWord都是“Panino 1”。 在此之后,我希望 if 语句为 true,但由于某种原因它看起来总是 false 并且内部 print 语句永远不会被执行!

for (Product p : productArray){
    System.out.println("TEST: " + p.name + " - " + finalWord + " - " + arr[4]); //this prints correctly.

    if(p.name.equalsIgnoreCase(finalWord)){
        System.out.println("INSIDE " + pr.name + " - " + finalWord + " - " + arr[4]);
        break;
    }
}
java
1个回答
0
投票

if 可能会被执行,但 pr.name 可能是一个拼写错误,从而引发异常。 应该是:

for (Product p : productArray)
{
    System.out.println("TEST: " + p.name + " - " + finalWord + " - " + arr[4]); //this prints correctly.

    if(p.name.equalsIgnoreCase(finalWord))
    {
        System.out.println("INSIDE " + p.name + " - " + finalWord + " - " + arr[4]);
        break;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.