当前位置:  开发笔记 > 编程语言 > 正文

为什么java没有从用户定义的类执行overriden hashcode()方法?

如何解决《为什么java没有从用户定义的类执行overridenhashcode()方法?》经验,为你挑选了1个好方法。

即使你重写,在将对象放入hashmap之前计算对象的哈希作为Key,它仍然引用Object类中的hashcode方法并给出一些int值.

我已经覆盖了一个方法,该方法只返回所有对象的相同值以测试哈希码,但每次获取值形式的Object类的哈希码方法都以本机语言实现.

如果它没有从用户定义的类执行重写哈希码方法那么实现哈希代码的目的是什么?

public class Product { 
    public String name ; 
    public int id;
    public int hashcode(){ int result = 1; return result; } 
}

理想情况下,所有产品对象的哈希码都是1,但我得到的东西就像952115109 540724846 ...为什么这个?



1> Andreas Fest..:
public int hashcode(){ ... } 

一定是

public int hashCode(){ ... } 

请注意,标识符在Java 中区分大小写.

要避免此类错误,请使用@Override注释:

@Override
public int hashcode(){
    ...
}

会产生编译时错误,因为hashcode()超类中没有方法.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有