[seasar-dev:1208] Re: S2Util

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2010年 8月 26日 (木) 23:30:00 JST


小林 (koichik) です.

Date:    Thu, 26 Aug 2010 22:43:08 +0900
From:    Wataru Yukawa <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [seasar-dev:1207] Re: S2Util

> 	public static <T> T notNullArgument(T target, String message) {

ここは戻り値いらないのでは.
パラメータのチェックと参照を同時にやるのは
可読性が悪いだけだと思うので.

hogehoge(notNullArgument(arg1, "arg1"), notNullArgument(arg2, "arg2"));

とかしたくないですよね?

notNullArgument(arg1, "arg1");
notNullArgument(arg2, "arg2");

hogehoge(arg1, arg2);

って方がいいと思います.
そうすると generics もいらなくなります.
それからメソッド名は assert〜 がよくて,
自分で言っといてなんですがこの場合は
Argument より Parameter な気がしていて,
引数の message はつまり引数の名前であって,
そうすると名前が前の方がいいので,

public static void assertParameterNotNull(String name, Object argument) {

がいいかなぁ.
他に String 用に

public static void assertParameterNotEmpty(String name, String argument) {

とか,配列用に

public static void assertParameterNotEmpty(String name, Object[] argument) {

とか,同様に Collection や Map 用など
あるといいのかな.

> 例外の先頭にSをつけてるのはSIllegalArgumentExceptionにあわせてのことです。
> 
> ほかに必要そうな例外としてはSIllegalStateExceptionとかSIndexOutOfBoundsExceptionとか。

できるだけ S〜 ではない名前がいいですね.
OutOfBounds はいらないんじゃないかな.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
    <property name="twitter">"http://twitter.com/koichik"</property>
</component>



Seasar-dev メーリングリストの案内