Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Locked History Actions

guice/Manual/BestPractices/UseNullable

@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である。