我有以下课程:
public class FilterValues {
private Boolean includeRecieved;
private Boolean includeUnrecieved;
//standard Getters and Setters for both Boolean fields...
}
在代码的其他地方,在另一个类中,使用以下方法比较两个字段以查看两者是否为真或均为假:
if (filterValue.getIncludeRecieved() == filterValue.getIncludeUnrecieved())
首先,请允许我解释一下,我意识到正确的方法是使用 .equals() 方法进行此比较。
我的问题是,当两个字段都设置为 true 时,上面的比较返回“true”并在我的本地工作时输入 if 语句。但是,当发布到我们的服务器时,相同的场景返回“false”并跳过 if 语句。该问题已通过将代码更改为:
if (filterValue.getIncludeRecieved().equals(filterValue.getIncludeUnrecieved()))
但是,我找不到任何解释为什么在不同环境中会出现行为差异的原因。我查看了文档,找不到任何会导致这种情况的内容。我需要了解原因,以确保此错误不会在其他地方发生,因为 QA 也无法在他们的本地机器上检测到它。
谁能解释一下是什么导致了两种环境之间 Java 行为的差异?