java - 如何比较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));
}
}
解决方案
您正在比较对象而不是equals
方法中的属性。正确的方法是:
public boolean equals(Logic obj) {
return this.bo==obj.bo;
}
推荐阅读
- tkinter - 如何在 tkinter 中将新的子标题子项添加到树视图?
- constraints - 在一定的票价下找到边数最少的路径
- powerbi - DAX、PowerBI 中的动态 GROUPBY
- node.js - 如何在不替换 mongodb 中的子文档数组的情况下进行更新?
- javascript - p5js 中 mousePressed 的问题
- angular - 南非身份证号码验证
- python - ValueError: color kwarg 每个数据集必须有一种颜色。提供了 891 个数据集和 1 种颜色
- python - 无法下载 spark-nlp 库提供的管道
- mongodb - Kolla-Ansible 部署失败 - /var/run/mongodb 不是目录
- c++ - 运行自定义可执行文件,QProcess 立即退出,退出代码为 1