首页 > 解决方案 > .equals() 如何比较对象?

问题描述

这可能很容易,但我无法弄清楚我做错了什么。我正在为已经为我提供的junit测试做一个java文件,如下

public void testEquals() {
    LogicVariable a = new LogicVariable("Y1");
    LogicVariable b = new LogicVariable("Y1");
    assertTrue(a.equals(b)); // same name
    assertTrue(a.equals((Object)b));
}   

我到了我的测试用这个的地步(请记住,这段代码不仅仅用于这个测试,所以我有两个同名的构造函数)

public class LogicVariable {

protected String name;
protected boolean value ;

public LogicVariable(String name) {
    this.name = name;
}

public LogicVariable(String name, boolean value) {
    this.name = name;
    this.value = value;
}   

据我了解,有多个具有相同名称但输入不同的构造函数,它会自动为给定的参数选择合适的构造函数(在这种情况下,跳过带有布尔值的构造函数)。我这样想错了吗?我不知道为什么 a 和 b 不同,因为它们都是只有名字的对象。

感谢你的帮助

标签: javaclassobjectjunitequals

解决方案


推荐阅读