忍者ブログ
[225] [224] [223] [222] [221] [220] [219] [218] [217] [216] [215]

DATE : 2017/09/20 (Wed)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


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
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)