@Nullableを使用すべし
NullPointerExceptionが起こらないようにするため、null参照についての規則が必要である。 我々は以下のシンプルなルールを守ることによって、これに成功してきた。
すべてのパラメータは、明示的に指定されない限りnullではいけない
GoogleコレクションライブラリとJSR-305(訳注:Javaコードの静的解析ツールのために用いられるアノテーションの提案)はnullを制御するためのシンプルなAPIを提供している。 真っ先にnullを見つけて失敗させるために、Preconditions.checkNotNullを使うことができる。 なおかつ、nullが許されるパラメータには、@Nullableアノテーションをつけることができる。
import static com.google.common.base.Preconditions.checkNotNull; import static javax.annotation.Nullable; public class Person { ... public Person(String firstName, String lastName, @Nullable Phone phone) { this.firstName = checkNotNull(firstName, "firstName"); this.lastName = checkNotNull(lastName, "lastName"); this.phone = phone; }
Guiceはデフォルトでnullを禁止している。 つまり、nullの注入は拒否され、ProvisionException例外が派生する。 もし、あなたのクラスでnullが許される場合は、フィールドやパラメータを@Nullableをつけること。 Guiceは他の@Nullableアノテーションも認識する。 つまり、edu.umd.cs.findbugs.annotations.Nullableやjavax.annotation.Nullableである。