category: Java
DATE : 2006/12/06 (Wed)
DATE : 2006/12/06 (Wed)
引数に渡された値が null であれば例外を投げるという場面は数多くあると思います。
例えば、引数に null を許可しない setName(String) メソッドを考えると、次のようなコードになります。このメソッドは、引数に渡された文字列を name フィールドに設定するという処理を行います。
/** * <p>名前を設定します。</p> * * @param name 設定する名前 * @throws IllegalArgumentException name が null の場合 */ public void setName(String name) { if (name == null) { throw new IllegalArgumentException("引数が null です。"); } this.name = name; }
Jakarta Commons Lang 2.0 以降の org.apache.commons.lang.Validate クラスにある notNull メソッドを使用すると、null チェックの部分を簡略化することができます。
例えば、Validate#notNull(Object, String) は、第1引数が null であれば第2引数のメッセージを設定した IllegalArgumentException を投げます。
notNull メソッドを使うと、上の例は次のようになります。(import 文などは省略しています)
public void setName(String name) { Validate.notNull(name, "引数が null です。"); this.name = name; }
メッセージが「The validated object is null」という英文でも構わない場合は、第2引数のないValidate#notNull(Object) が使えます。
public void setName(String name) { Validate.notNull(name); this.name = name; }
notNull メソッドの行っている処理は非常に簡単なものですが、引数チェックを書く手間がかなり省けます。また、うっかりして null の判定を間違える心配もなくなります。
この他にも、Validate クラスには引数チェックを行う場合に便利なメソッドが揃っています。
(*´∀`)引数チェックは定型的な処理が多いので、このようなクラスは非常に便利ですね。
PR
●この記事にコメントする
忍者ブログ [PR]