唯一有趣的是,为什么 java.lang.String 中的方法 hashCode() 不是静态的?
如果返回 null,例如-1?
因为经常需要做一些类似的事情:
String s;
.............
if (s==null) {
return 0;}
else {
return s.hashCode();
}
Thanks.
正如其他人指出的那样hashCode
是一个方法Object
并且是非静态的,因为它本质上依赖(即属于)对象/实例。
请注意,Java 7 引入了Objects http://download.oracle.com/javase/7/docs/api/java/util/Objects.html类,其中有hashCode(Object) http://download.oracle.com/javase/7/docs/api/java/util/Objects.html#hashCode%28java.lang.Object%29方法,它正是你想要的:返回o.hashCode()
if o
为非空或0
否则。
这个类还有其他处理可能的方法 -null
值,例如equals(Object, Object) http://download.oracle.com/javase/7/docs/api/java/util/Objects.html#equals%28java.lang.Object,%20java.lang.Object%29, toString(Object) http://download.oracle.com/javase/7/docs/api/java/util/Objects.html#toString%28java.lang.Object%29和其他一些。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)