きり丸の技術日記

技術・エンジニアのイベント・資格等はこちらにまとめる予定です

SpringのAssertクラスで簡単にValidationする【Java】

この記事はAssertクラスを紹介するだけの小ネタです。


Springには、Assertクラスという簡単にValidationしてくれるようなクラスがあります。複雑なことはできませんが、サクっとメソッドのパラメータを検証したい時は便利です。なお、複雑なことをしたければ、Apache Commons Langのorg.apache.commons.lang3.Validate, Google Guavaの Preconditions等のサードパーティを使うようにとAssertクラスのJavaDocに記載されています。

環境

  • Java
    • 15
  • org.springframework.boot
    • 2.4.5

使い方

org.springframework.utilパッケージのAssertクラスを使います。

色々とメソッドはありますが、state(boolean expression , String message)以外は特に使わないと思うので、紹介しません。第一引数に条件、第二引数にエラーメッセージを指定します。

内部的な処理はこれだけです。

public static void state(boolean expression, String message) {
  if (!expression) {
    throw new IllegalStateException(message);
  }
}

今回はnullチェックだけ行っていますが、数値の範囲指定や最大値等のチェックも行うことができます。

// 自作メソッド
public static void notNullValidate(Object obj) {
  Assert.state(obj != null, "param is null");
}

エラーメッセージを修正することができるので、細かくアレンジすることができます。

java.lang.IllegalStateException: param is null

    at org.springframework.util.Assert.state(Assert.java:76)
    at kirimaru.biz.domain.AssertPractice.notNullValidate(AssertPractice.java:13

ソースコード

終わりに

正直、小ネタも小ネタです。このメソッドを知らなくても、簡単にハンドリングできますからね。

Objects.requireNonNull()だとNullPointerExceptionが発生して、意図的なエラーか意図していないエラーかが分かりません。Assert.state()だとIllegalStateExceptionですので、そこの使い分けができるかもしれません。

アプリケーションの起動時のチェックとして使用すると、良いと思います。もし、アプリケーションの起動時チェックとして扱いたい時は、こちらの記事も参考にしてください。


この記事がお役に立ちましたら、各種SNSでのシェアや、今後も情報発信しますのでフォローよろしくお願いします。

類似記事

f:id:nainaistar:20210611000203p:plain