gpt4 book ai didi

java - 我应该如何使用 google guava hashCode() 调用 super.hashcode

转载 作者:行者123 更新时间:2023-11-29 09:41:53 26 4
gpt4 key购买 nike

public abstract class HolidayPackageVariant {
private HolidayPackage holidayPackage;
private String typeHolidayPackage;

@Override
public int hashCode() {
return Objects.hashCode(getTypeHolidayPackage(), getHolidayPackage());
}
}

public final class FlightHolidayPackageVariant extends HolidayPackageVariant{
private Destination originCity;

@Override
public int hashCode() {
// need to add super.hashCode() here somehow ?
return Objects.hashCode(getOriginCity() );
}
}

谷歌 Guava 哈希():Objects.hashCode适用于成员对象。如何在 derived::hashCode() 中指定父类(super class) hashCode() ?我可以直接在派生类 hashCode() 函数中使用 super.members,但是如果 super.hashCode() 以任何方式发生变化,那将不会反射(reflect)在派生类中:hashCode(...)。

最佳答案

很抱歉没有回答,但是:这可能不是您真正想要做的。 Effective Java 对为什么继承值类型以添加​​附加值组件是一个坏主意进行了长期探索。在第二版中,它是第 8 条,“在覆盖 equals 时遵守一般契约(Contract)”。另请参阅第 16 条,“优先考虑组合而不是继承”。

关于java - 我应该如何使用 google guava hashCode() 调用 super.hashcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889215/

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