我正在尝试使用equals方法与对象进行比较,但它总是返回false
public class main {
public static boolean match(house h1,house h2) {
if(h2.equals(h1)) {
return true;
}
else {
return false;
}
}
public static void main(String[] args) {
house myHouse1 = new house("jj",5,5);
house myHouse2 = new house("jj",5,5);
System.out.println(match(myHouse1,myHouse2));
}
}
您必须自己实现 equals
方法。
equals
方法不会神奇地测试您的自定义类的两个实例是否被认为彼此“相等”。您必须自己定义两个对象何时相等。
由于您自己没有实现等于
,因此选择了Object
的实现(在您的情况下),它只根据身份进行比较。new
创建的两个对象始终具有不同的标识,即内存中的两个独立块,尽管它们具有完全相同的字段。
因此,您需要重写等于
(根据合同,还需要重写hashCode
)。请注意,<code>等于</code>方法必须接受<code>Object</code>而不是<code>House</code><sup>1</sup>,即<code>公共布尔值等于(Object-other){…}</ccode>。
您有几个选项来实现 equals
(和哈希代码
):
@EqualsAndHashCode
注释。房子
变成一个记录
2,你可以免费获得平等
和哈希代码
。1根据Java命名约定,类名应该用PascalCase编写,因此house
应该是House
。
2记录从Java16开始可用(在Java14和15中作为预览功能)。
在.NET Framework 4.5中,由Trim()方法调用的专用TrimHelper()方法使用以下条件来确定是否需要修剪字符:(由.NET Reflector反编译的代码) 我想知道为什么IsBOMWhitesspace方法总是返回false?? 这是微软计划在未来改变/扩展的吗?例如,通过检查char是否为‘u efff’并在这种情况下返回true?
问题内容: 我已经写了这段简单的代码: 在我的情况当属。谁能建议/建议出什么问题了? 问题答案: 错误检查和处理是程序员的朋友。检查初始化和执行cURL函数的返回值。并在失败的情况下包含更多信息: *在 手动状态: 成功返回cURL句柄,错误返回 FALSE 。 我观察到该函数在您使用其参数且无法解析域时会返回。如果未使用该参数,则该函数 可能 永远不会返回。但是,请务必始终进行检查,因为该手册并
我在Android Studio上写过Java代码。我做了登录方法,在我的代码中发生了一些事情。它没有返回正确的返回值。返回值始终为false。虽然我在Android Studio上检查了函数,但是布尔变量已经正确地改变了,但是它在方法的末尾又改变了,所以登录方法总是返回false&我无法继续登录。 请帮我解决这个困惑的时刻。任何回答都将不胜感激,非常感谢。
我有一个整数的二叉搜索树,包括1、2、...、9。我的遍历方法工作,我知道节点在那里,并且以正确的顺序。 我在纸上写下了当我搜索一个值时发生的事情,它返回根是没有意义的。我做错了什么?
问题内容: 结果始终为1: 我在phpMyAdmin中运行了$ sql查询,它返回3,所以查询不是问题。$ vote_total全局初始化为0,因此1来自某个地方。我还需要提供什么其他信息来帮助我? 谢谢,瑞安 问题答案: 返回选定的行数,而不是特定行的字段。使用来获取您与您的查询选择的行: 您还可以用来获取一行并获取特定字段: 这将获取第一行(从零开始)并返回第一字段(从零开始)。
我使用Ehcache 2.6.8作为Spring Boot应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,它允许我检查缓存的内容(如果您感兴趣,可以在这里查看)。 首先,我使用CacheManager名称来获取缓存列表。这很好。我可以用返回缓存。然后我调用。这很好,cacheName是“com.myapp.DomainObjectName”,键被列为“