gpt4 book ai didi

java - 在另一个 equals() 实现中使用 String 的 equals() 实现?

转载 作者:行者123 更新时间:2023-12-01 14:10:52 25 4
gpt4 key购买 nike

假设有一个 class Member,其中 member 具有 String 类型的 Id。我想知道在另一个实现中使用 String equals() 实现是否存在任何问题。如果field IdLong类型会更好吗?

@Override public boolean equals(Object object){
if(object == null) return false;
if(! (object instanceof Member)) return false;
Member member= (Member) object;
if(this.Id.equals(member.Id)) //<==My concern is here
return true;
else
return false;
}

最佳答案

我看到的唯一问题是,除了 id 之外,您可能还有更多的类成员,并且即使有两个实例,您的 equals 实现也会显示 true差异很大,但具有相同的id。考虑到这一点,请确保具有一致的 hashCode 实现,以避免不一致。

另一个想法是定义自定义比较器,例如

static Comparator<Member> MEMBER_ID_COMPARATOR = new Comparator<Member>() {
@Override
public int compare(Member first, Member second) {
assert(first.getId() != null);
assert(second.getId() != null);
return first.getId().compareTo(second.getId());
}
}

关于java - 在另一个 equals() 实现中使用 String 的 equals() 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18540753/

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