[ 
https://issues.apache.org/jira/browse/LANG-780?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13168966#comment-13168966
 ] 

Alex Pokotilo commented on LANG-780:
------------------------------------

"Using Enum#name() means that the same hashCode will be used for different Enum 
instances that happen to have the same name.

That seems like quite a disadvantage to me."(c)
Proposed method is just an example and to avoid your concent we can use 
something like following

private static int hashCodeForEnum(Enum enumItem)
{ return (enumItem.getClass().getName()+enumItem.name()).hashCode(); }

But again this is just proposal. I think initial point is valid. I want to see 
the same hashCode for enum using HashCodeBuilder. This would be great.
                
> add  public org.apache.commons.lang.builder.HashCodeBuilder append(Enum 
> value) to HashCodeBuilder 
> --------------------------------------------------------------------------------------------------
>
>                 Key: LANG-780
>                 URL: https://issues.apache.org/jira/browse/LANG-780
>             Project: Commons Lang
>          Issue Type: New Feature
>          Components: lang.builder.*
>    Affects Versions: 2.5
>            Reporter: Alex Pokotilo
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Since Enum's hashCode return different values between calls this can cause 
> different values if enum appended to HashCodeBuilder 
> IMHO adding append for enum would be enough to solve this entirely
> public org.apache.commons.lang.builder.HashCodeBuilder append(Enum value)
> {
>  append(value.name().hashCode());
>  return this;
> }

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to