为什么hashCode实例方法在Java中没有命名为getHashCode



为了在Java中获得对象的哈希代码,我们使用hashCode()方法。

要访问Java中的(私有(字段,标准情况下,我们需要根据方法执行的操作类型,使用getset作为前缀的单独方法。那么,为什么hashCode方法会有所不同呢?

方法hashCode()是在第一个Java版本中引入的,即正式版本1.0。

getXXX()setXXX()范式后来被建立为JavaBeans标准的一部分。JavaBeans通过从getter/setter对派生属性来定义一个简单但非常有用的组件模型。JavaBeans是在JDK 1.1中引入的。

因此hashCode()早于getter/setter范式。

最终:冲突的范式。

请记住,像hashCode()这样的方法或多或少从第0天起就与java结合在一起了。当时,并没有一个既定的标准建议:分别使用getters。一个明确的";方法应命名为doWhatever()";。

一旦发布,将其重命名为更合适的computeHashcode()或类似的名称将破坏所有现有的源代码。

换句话说:还有一种使用非常短的方法名称的心态,例如Collections接口中的size()

最新更新