Objects.isNull()とは何か
Javaの業務開発において、最も頻繁に行う処理のひとつが「nullチェック」です。
nullとは、オブジェクトの参照先が存在しない状態を表します。
例えば、データベースから取得した顧客情報が存在しなかった場合や、外部APIから期待したデータが返ってこなかった場合などにnullが発生します。
Javaでは、nullを適切に扱わないと「NullPointerException」という例外が発生し、システム障害の原因となることがあります。
そのような問題を防ぐために利用されるユーティリティメソッドのひとつが Objects.isNull() です。
Objects.isNull(対象オブジェクト)
Javaこのメソッドは、
- nullの場合 →
true - nullではない場合 →
false
を返します。
Objects.isNull()の基本構文
まずは最もシンプルな例を見てみましょう。
import java.util.Objects;
String name = null;
if (Objects.isNull(name)) {
System.out.println("nameはnullです");
}Java実行結果
nameはnullです
nameがnullなので、Objects.isNull()はtrueを返しています。
従来のnullチェックとの違い
Javaでは古くから次のような書き方が行われてきました。
String name = null;
if (name == null) {
System.out.println("nameはnullです");
}Java実は、
Objects.isNull(name)Javaは、
name == null
``Javaとほぼ同じ意味です。
内部的にも非常に単純な実装になっています。
public static boolean isNull(Object obj) {
return obj == null;
}
``Javaつまり性能面で大きな差はありません。
ステップバイステップで理解する
ステップ1:変数を作成する
String userName = null;Javaまだ何も参照していない状態です。
ステップ2:isNull()で判定する
boolean result =
Objects.isNull(userName);
`Java`
ステップ3:判定結果を確認する
System.out.println(result);Java実行結果
true
userNameはnullなのでtrueになります。
nullでない場合はどうなるのか
String userName = "MONO";
System.out.println(
Objects.isNull(userName));Java実行結果
false
値が存在しているため、falseが返ります。
なぜnullチェックが重要なのか
業務システムではユーザー情報や商品情報などの取得処理が頻繁に行われます。
例えば次のコードを見てください。
User user = userService.findById(100);Java検索対象が存在しない場合、
user == nullJavaになる可能性があります。
その状態で次のコードを実行すると問題が発生します。
System.out.println(user.getName());Java実行結果
NullPointerException
つまり、
「存在しないオブジェクトのメソッドを呼び出した」
ために例外が発生したのです。
実務では取得直後にチェックする
実務では次のような書き方が基本になります。
User user = userService.findById(100);
if (Objects.isNull(user)) {
System.out.println("ユーザーが存在しません");
return;
}
System.out.println(user.getName());Javaこの書き方により、
- システム障害を防げる
- コードの意図が明確になる
- デバッグしやすくなる
というメリットがあります。
特に重要:NullPointerExceptionを防ぐ考え方
初心者が最初に遭遇しやすいエラーがNullPointerExceptionです。
例えば次のコードです。
String text = null;
System.out.println(text.length());Java実行結果
NullPointerException
文字列が存在しないのに長さを取得しようとしているためです。
そこで事前にチェックします。
String text = null;
if (!Objects.isNull(text)) {
System.out.println(text.length());
}
``Javaこの考え方は業務システム開発の基本中の基本です。
Objects.isNull()が活躍する場面
コレクション処理
Java8以降ではStream APIがよく利用されます。
例えばリストの中からnullだけを取得したい場合です。
List<String> list =
Arrays.asList(
"A",
null,
"B",
null,
"C"
);
list.stream()
.filter(Objects::isNull)
.forEach(System.out::println);Javaこのコードはnullだけを抽出します。
メソッド参照との相性が良い
従来の書き方
list.stream()
.filter(x -> x == null);
JavaObjects.isNull()版
list.stream()
.filter(Objects::isNull);Java後者のほうが、
「nullを判定している」
という意図が明確に伝わります。
そのためJava8以降のモダンなコードでは頻繁に見かけます。
Objects.nonNull()も一緒に覚えよう
実務ではこちらの方が登場回数が多い場合があります。
Objects.nonNull()Javaこれは、
- nullではない → true
- null → false
を返します。
例えばnullを除外したい場合です。
list.stream()
.filter(Objects::nonNull)
.forEach(System.out::println);Java実行結果
A
B
C
非常に読みやすいコードになります。
実務で使えるテンプレート集
データ取得後チェック
Employee employee =
employeeRepository.findById(id);
if (Objects.isNull(employee)) {
throw new RuntimeException(
"社員情報が存在しません");
}Javaリクエストチェック
if (Objects.isNull(request)) {
throw new IllegalArgumentException(
"リクエストが不正です");
}Javaログ出力前チェック
if (Objects.nonNull(user)) {
log.info(user.getName());
}JavaStreamでnull除外
List<String> result =
list.stream()
.filter(Objects::nonNull)
.toList();Java初心者が間違えやすいポイント
nullと空文字は別物
初心者が特に勘違いしやすい部分です。
String str = "";Javaこれはnullではありません。
そのため、
Objects.isNull(str)Javaの結果は、
false
になります。
空文字チェックは別で行う
if (str == null || str.isEmpty()) {
System.out.println("未入力");
}
Java実務では、
- null
- 空文字
- 空白のみ
を区別するケースが非常に多いため注意が必要です。
isNull()を使えば安全になるわけではない
次のコードは正しくありません。
if (Objects.isNull(user)) {
System.out.println("nullです");
}
user.getName();Javanullだった場合でも処理が続行されます。
正しくは次のようにします。
if (Objects.isNull(user)) {
return;
}
user.getName();Javaチェックした後の処理設計まで含めて考えることが重要です。
情報セキュリティの観点から見る重要性
nullチェック不足は単なるプログラムミスではありません。
本番環境では次のような問題につながる可能性があります。
- サービス停止
- 業務処理の中断
- データ不整合
- 例外ログの大量出力
- システム可用性の低下
セキュアコーディングでは、
「外部から受け取る値は信用しない」
という原則があります。
そのため、
Objects.isNull()Javaによる入力値検証や取得結果の確認は、堅牢なシステムを作るための第一歩といえます。
実務での使い分け
一般的には次のように使い分けられます。
通常のif文
if (user == null) {
}Javaシンプルで読みやすいです。
Stream API
.filter(Objects::isNull)
`Javaこちらが圧倒的に読みやすいです。
null除外
.filter(Objects::nonNull)Java実務で非常によく利用されます。
まとめ
Objects.isNull()はJava標準ライブラリが提供するnull判定ユーティリティです。
主なポイントは次の通りです。
- nullならtrueを返す
== nullとほぼ同じ意味- NullPointerExceptionの予防に役立つ
- Stream APIとの相性が非常に良い
- メソッド参照でコードが読みやすくなる
Objects.nonNull()とセットで覚えると実務で便利- セキュアコーディングや障害防止の観点でも重要
特に初心者のうちは、「オブジェクトを取得したらまずnullを疑う」という意識を持つことが重要です。この習慣を身につけるだけで、実務レベルのJavaコードの品質と安全性が大きく向上します。

