Boolean ラッパーの null チェックを行う
このステップでは、Java で Boolean ラッパーオブジェクトを扱う方法を探ります。具体的には、Boolean オブジェクトが null かどうかをチェックすることに焦点を当てます。true または false のみを取り得るプリミティブな boolean 型とは異なり、Boolean ラッパークラスは null 値も保持できます。これを注意深く処理しないと、NullPointerException の一般的な原因となります。
これを実証するために、簡単な Java プログラムを作成しましょう。
-
WebIDE の左側にあるファイルエクスプローラーで ~/project ディレクトリを開きます。
-
~/project ディレクトリ内の空白部分を右クリックし、「新しいファイル」を選択します。
-
新しいファイルの名前を BooleanCheck.java として、Enter キーを押します。
-
コードエディターで BooleanCheck.java ファイルを開きます。
-
次の Java コードをエディターにコピーして貼り付けます。
public class BooleanCheck {
public static void main(String[] args) {
Boolean myBoolean = null;
// Attempting to directly use a null Boolean in a conditional
// will cause a NullPointerException
// if (myBoolean) {
// System.out.println("This will not be printed if myBoolean is null.");
// }
// Correct way to check if a Boolean wrapper is null
if (myBoolean == null) {
System.out.println("myBoolean is null.");
} else {
System.out.println("myBoolean is not null.");
}
// Another way to check the boolean value safely
if (Boolean.TRUE.equals(myBoolean)) {
System.out.println("myBoolean is true.");
} else if (Boolean.FALSE.equals(myBoolean)) {
System.out.println("myBoolean is false.");
} else {
System.out.println("myBoolean is null (checked using equals).");
}
}
}
-
Ctrl + S(Mac の場合は Cmd + S)を押してファイルを保存します。
-
次に、Java プログラムをコンパイルしましょう。WebIDE の下部にあるターミナルを開きます。~/project ディレクトリにいることを確認します。もしそうでない場合は、cd ~/project と入力して Enter キーを押します。
-
javac コマンドを使用してコードをコンパイルします。
javac BooleanCheck.java
エラーがなければ、コマンドは何も出力せずに完了します。これは、~/project ディレクトリに BooleanCheck.class ファイルが作成されたことを意味します。
-
java コマンドを使用してコンパイルされた Java プログラムを実行します。
java BooleanCheck
-
ターミナルに次の出力が表示されるはずです。
myBoolean is null.
myBoolean is null (checked using equals).
この出力は、== null チェックと Boolean.TRUE.equals() / Boolean.FALSE.equals() パターンを使用して、コードが Boolean オブジェクトを正しく null と識別したことを確認しています。コメントアウトされたコードは、null の Boolean を if 条件で直接使用しようとした場合に何が起こるかを示しています。これは NullPointerException を引き起こします。
null の Boolean オブジェクトを安全に扱う方法を理解することは、Java プログラミングにおける一般的なエラーを回避するために重要です。