2
nullの@Nonnullアノテーションが付けられたパラメーターを確認しますか?
FindBugsの使用を開始し、パラメーターに@Nonnull適切な注釈を付けました。サイクルの早い段階でバグを指摘することは非常に効果的です。これまでnullGuava's を使用するためにこれらの引数のチェックを続けてきましたが、エッジcheckNotNullでnullのみチェックすることをお勧めしますnull。たとえば、SOAPリクエストのようにチェックされずに値が入る場所です。 // service layer accessible from outside public Person createPerson(@CheckForNull String name) { return new Person(Preconditions.checkNotNull(name)); } ... // internal constructor accessed only by the service layer public Person(@Nonnull String name) { this.name = Preconditions.checkNotNull(name); // remove this check? } 値自体を@Nonnullブロックしないことを理解していnullます。 ただし、FindBugsは値がマークされていないフィールドからマークされたフィールドに転送される場所を指すので、渡さ@Nonnullれるnullすべての場所でこれらの値をチェックすることなく、これらのケースをキャッチするためにそれに依存することはできませんか?システム?ツールを信頼し、これらの詳細なチェックを避けたいですか? 結論:下の2番目のnullチェックを削除しても安全に思えますが、それは悪い習慣ですか? この質問は、彼がnullを期待していない場合、nullをチェックするべきであるとおそらくあまりにも似ていますが、私は@Nonnull注釈に関連して具体的に尋ねています。