[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: getterの命名について
アステル関西まっTelサービス(着信専用サービス、月額基本料金¥0)申込受付中
通話ができるので、彼女や、塾通いお子さんにもう1台!http://www2.gulf.or.jp/
---------------------------------------------------------------------------
いなみです。
On Thu, 07 Oct 1999 00:51:39 +0900
「[jfriends] Re: getterの命名について」にて
Atsuyuki Nishizawa <anishi@xxxxxxxxxx> wrote:
> やはり、よく使う比較条件などは、毎回値を取り出してnullと比較するよりも、
> isNull()のメソッドを用意しておけば if文などで何を評価しているか
> メソッド名からわかるので可読性が大幅アップです。
# null に特化して変なことを聞いてしまいますが(^^;
取り出した値が null かチェックする場合を考えた場合、何か変な
気がしますが気のせいでしょうか。
if (obj.getFoo() == null) { ...
は、意味的には
Foo foo = obj.getFoo();
if (foo == null) { ....
ですが、isNullメソッドを作った場合でもし fooが null の場合は
if (foo.isNull()) { ...
は isNull() が staticメソッドでなければ NullPointerException
になってしまうのでなかなか悲しいものが有ります。
staticメソッドにすれば解決、と言うわけにも行かないですよね。
class Foo {
public static boolean isNull(Foo foo) {
retuen foo==null;
}
}
にして、foo.isNull(foo); と言うのもかなりマヌケですし…(^^;
何とかなるものでしょうか。
と言うか、西沢さんの考えたのは Foo ではなく obj の方のメソッ
ドとして、
class Obj {
Foo foo;
public Foo getFoo() {
retuen foo;
}
public boolean fooIsNull() {
return foo==null;
}
}
とか、各プロパティ毎に xxxIsNull()を作るような感じでしょうか。
isNull(String propertyName) とか付けて、プロパティ名で
リフレクション使って……とか?(^^;
そこまでするなら、最初の
if (obj.getFoo() == null) { ...
で妥協してしまうのがスジなのか……(笑)
---
> でも、なぜBooleanクラスにisTrue()とかisFalse()とかのメソッドがないの?と
> 思ってしまいます。。。
>
> #booleanValue()ってダサダサ(^^;)
ラッパークラスの宿命……と思ったら、Charcter は is〜なメソッ
ドがたくさんあるな(^^; と、思ったけど static メソッドなので
関係ないや。
[プリミティブの型名]+Value() と言うメソッドしか無い、と言う
のはやはり宿命かもしれません。
---
井浪@xxxxxxxxxx