数日前、社内で Java 7 に切り替えました - ついに!Jay \o/ そこで私はこのクラスについて知り、Objects
メソッドがいかに短く実現されているかに驚き、デフォルトで Eclipse によって生成されたものと比較してボイラープレート コードの多くを削減しました (ALT+SHIFT+S --> H)。hashCode()
equals()
hashCode()
生成された日食のデフォルトの動作を変更できるかどうか疑問に思っていましたequals()
。
私はこれを見たいです:
@Override
public int hashCode()
{
return Objects.hash(one, two, three, four/*, ...*/);
}
これの代わりに:
@Override
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((one == null) ? 0 : one.hashCode());
result = prime * result + ((two == null) ? 0 : two.hashCode());
result = prime * result + ((three == null) ? 0 : three.hashCode());
result = prime * result + ((four== null) ? 0 : four.hashCode());
// ...
return result;
}
についても同様ですequals()
。これは私がこれを手に入れた記事です。
これを最もよく実現する方法はありますか?