そのために特別なラッパー クラスを使用する必要はありません。何かを許可したくない場合は、小切手で渡された瞬間でnull
はないことを確認してください。null
標準 Java でこれを行うことができます。
if (arg == null)
throw new NullPointerException();
this.string = arg;
またはGuavaを使用すると、Preconditionsクラスを使用して次のように簡略化できます。
this.string = checkNotNull(arg); // using static import
Guava の r10 では、かなり前に登場し、 Optional<T> (不変) またはHolder<T> (可変)を使用することもできます。これらは、どちらも「不在」(値を保持しない) であることが許可されているため、必ずしも探しているものとは異なりますが、どちらも含まれていない可能性がありますnull
。Holder
特に、値で初期化されていることを示していないため、例のシナリオで機能するようです(String
作成時に指定されていないため、最初は存在しない必要があります)。そのメソッドは、必要に応じて if givenをset
スローします。NullPointerException
null
final Holder<String> stringHolder = Holder.absent(); // nothing at first
public void mutate(String arg) {
stringHolder.set(arg);
}
Holder
またはを使用する場合、存在しない場合はスローされるため、通常、呼び出す前にそれをOptional
確認する必要があります。または、次の方法を使用できます。isPresent()
get()
IllegalStateException
or
String definitelyNotNull = stringHolder.or("default");