gpt4 book ai didi

java - 相同物体的比较

转载 作者:行者123 更新时间:2023-12-01 17:38:21 25 4
gpt4 key购买 nike

我正在尝试为 Person 类编写一个 eqauls(Object Comparison) 方法,该方法可用于比较人的相似度。比较应考虑到一个人的所有变量(包括生日)的相等性。我比较他们生日的方式有什么问题吗?

注意!请记住,您不能使用等号来比较两个生日对象!我所做的是:

 public boolean equals (Object compared){

if(this == compared){
return true;
}

if(!(compared instanceof Person)){
return false;
}

Person comparedPerson = (Person) compared;

if(this.name.equals(comparedPerson.name) && this.birthday.equals(comparedPerson)&& this.height == comparedPerson.height && this.weight== comparedPerson.weight){
return true;
}
return false;

最佳答案

您可以使用Objects.equals(Object a,Object b) (JDK7+)

它的优点是它会检查空值。通过您的方法,当 this.name 或 this.birthday 为 null 时,您可以获得 NPE。

public boolean equals (Object compared){

if(this == compared){
return true;
}

if(!(compared instanceof Person)){
return false;
}

Person comparedPerson = (Person) compared;

return Objects.equals(this.name, comparedPerson.name) &&
Objects.equals(this.birthday, comparedPerson.birthday) &&
this.height == comparedPerson.height &&
this.weight== comparedPerson.weight;
}

至于hash ,还有一个方法

Objects.hash(Object... values)

这会很有帮助。

关于java - 相同物体的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61006960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com