192.168.1.145_20200909-郎航

问题

    public int hashCode() {
        // 使用从JDK 1.7 开始提供的 Objects类中的 hash方法根据指定的字段来求哈希码值
        return Objects.hash( name , price );
    }

    @Override
    public boolean equals(Object o) {
        if( o instanceof Product ) {
            Product p = (Product)o;
            System.out.println( "equals" );
            return name.equals( p.name ) && price == p.price ;
        }
        return false;
    }

为什么重写equals()方法比较还要写hasCode()方法

解决

当equals方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

吐槽

天气变化挺大的。

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1