この記事は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でのシェアや、今後も情報発信しますのでフォローよろしくお願いします。