Javaではnull object
、すべての参照でnullチェックを行わずにコードを乱雑にするよりもパターンを優先します。最近、オブジェクトnull object
を保持して使用する際に問題が発生しました。以下のようなクラスがある
と仮定しますsingleton
Person
public class Person {
public String firstName;
public String lastName;
public boolean isNull() {
return false;
}
public static final Person NULL = new Person() {
public boolean isNull() { return true; }
}
}
この場合、NULL
オブジェクトをfinalとして宣言しましたが、メンバー変数とそのグローバルで使用可能な変数を変更できます。
Person nullRef = Person.NULL;
Person.NULL.firstName = "sample";
System.out.println(nullRef.firstName);
この場合、その3つのフィールドだけで、これらの3つのgetterメソッドをオーバーライドすることで可変性の問題を解決できます。しかし、実際には、対応するすべてのゲッターメソッドをオーバーライドするのが難しい多くのフィールドがあります。
オブジェクトのこの可変性の問題を解決するための標準的なパターンまたは戦略はありNULL
ますか?