首页 > 解决方案 > 如何比较Java中的2个布尔对象

问题描述

我正在尝试比较两个布尔值是否具有相同的逻辑值,但代码仅在我比较同一个对象时才有效,对于以下代码,输出将为 false,我不明白为什么:


public class Logic {
    private boolean bo;
    public Logic(boolean bo) {
        this.bo=bo;
    }

    public boolean equals(Object obj) {
        if (this==obj)
            return true;
        else
            return false;
    }
    public static void main(String[] args) {
        Logic l1,l2;
        l1=new Logic(true);
        l2=new Logic (true);
        System.out.println(l1.equals(l2));

    }

}

标签: javabooleanequals

解决方案


您正在比较对象而不是equals方法中的属性。正确的方法是:

public boolean equals(Logic obj) {
     return this.bo==obj.bo;
}

推荐阅读