[
https://issues.apache.org/jira/browse/LANG-1203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15720199#comment-15720199
]
Duncan Jones commented on LANG-1203:
------------------------------------
There may be some reasons why excluding a value from a hash code makes sense.
See [this StackOverflow
question|http://stackoverflow.com/questions/4748211/java-equal-and-hashcode-based-on-different-fields]
for some discussion on that topic.
I think there's an argument for having two annotations:
* HashCodeExclude
* EqualsAndHashCodeExclude
I can't see how you can exclude something from equals and not from hash code.
> Separated annotations HashCodeExclude and EqualsExclude break the general
> contract for the hashCode method in java.lang.Object
> ------------------------------------------------------------------------------------------------------------------------------
>
> Key: LANG-1203
> URL: https://issues.apache.org/jira/browse/LANG-1203
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.builder.*
> Affects Versions: 3.5
> Reporter: Frank Forster
>
> Since version 3.5-SNAPSHOT the annotations HashCodeExclude and EqualsExclude
> exist in component
> [lang.builder.*|https://git-wip-us.apache.org/repos/asf?p=commons-lang.git;a=tree;f=src/main/java/org/apache/commons/lang3/builder;hb=HEAD].
> A separated handling of both annotations breaks the general contract for the
> hashCode method in java.lang.Object ("If two objects are equal according to
> the equals(Object) method, then calling the hashCode method on each of the
> two objects must produce the same integer result.").
> Rather there should exist only one exclude annotation dedicated to both
> methods, like 'EqualsAndHashCodeExclude'.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)