3

注釈を認識hashCodeして自動的に生成するように Eclipse を構成する方法はありますか? 現在、私のEclipseは、マークされたフィールドであっても、不要なチェックでコードを生成します。equals@NonNullnull@NonNull


FindBugs は、これらの null チェックが冗長であるという警告を発することに注意してください。もちろん、メソッドに追加することはでき ますが、それは FindBugs の役割とそもそも@edu.umd.cs.findbugs.annotations.SuppressWarnings("RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE")の役割を損なうようです。@NonNull

最善の解決策は、Eclipse に JSR 305 を認識させ、それに応じてチェックなしで生成させるequalsことです (hashCodeいずれにせよそうである場合は、契約違反が発生したため、自然にスローされるようにします)。nullnullNullPointerException

それとは別に、Eclipse によって生成されたequalsとテンプレートをカスタマイズする方法があると便利です。hashCode

関連する質問

4

1 に答える 1

2

これらの null チェックは不要ではないと私は主張します。それらが省略された場合、検証に合格しないオブジェクトに対してequalsandhashcodeが誤動作し、あらゆる種類の問題が発生します。

ファローアップ

とにかくどこでもnullをチェックするつもりなら、 @NonNull 注釈の使用は何ですか?

注釈のポイントは、有効なインスタンスにはその属性がないことnullを宣言し、その宣言に基づいて検証メカニズムを実装できるようにすることです。

ただし、インスタンスが常に有効である必要はありません。実際、その場合は、インスタンスを作成してリンクする際に、あらゆる種類の実装上の問題 (たとえば) に遭遇することになります。

于 2010-12-04T03:15:48.420 に答える