アノテーションによるアサーション(その1)
機能
特徴
アノテーション例
以下に、@NotNull アノテーションを用いて、引数と戻り値のアサーションを行う例を示します。
import jp.objectfanatics.assertion.constraints.NotNull; public class SampleBean { private String parameter = null; /** * 引数が null でないことを保証するアサーションのサンプルメソッド * @param param null 以外の値 * @throws AssertionError param が null の場合 */ public void setParameter(@NotNull String param) { parameter = param; } /** * 戻り値が null でないことを保証するアサーションのサンプルメソッド * @return null 以外の値 * @throws AssertionError null を戻り値として返そうとした場合 */ @NotNull public String getParameter() { return parameter; } }
実行サンプル(パラメータが null の例)
以下の例では、入力が null のため AssertionError がスローされます。その際、不正な入力が行われたパラメータの番号(0が先頭)が示されます。
public class NullParamCase { public static void main(String[] args) { // テスト用インスタンス作成。 SampleBean bean = new SampleBean(); // 入力が null のため AssertionError がスローされる。 bean.setParameter(null); } }
例外:
Exception in thread "main" java.lang.AssertionError: parameter 0 is null. at SampleBean.setParameter(SampleBean.java) at NullParamCase.main(NullParamCase.java:8)
実行サンプル(戻り値が null の例)
以下の例では、戻り値として null を返そうとするため AssertionError がスローされます。
public class NullReturnValueCase { public static void main(String[] args) { // テスト用インスタンス作成。 SampleBean bean = new SampleBean(); // 戻り値として null を返そうとするため AssertionError がスローされる。 bean.getParameter(); } }
例外:
Exception in thread "main" java.lang.AssertionError: return value is null. at SampleBean.getParameter(SampleBean.java:23) at NullReturnValueCase.main(NullReturnValueCase.java:8)