[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: getterの命名について




ほんとに細かいことですが後学の為に
In article <199910130313.MAA10632@xxxxxxxxxx>
inami wrote:
>> >  if (intObj.getClass() == Integer.class) {
>> >          ↓
>> >  if (intObj instanceof Integer) {
>> >なら,(上の文がコンパイル通るかは試してませんが(^^;)下のほう
>> >がスマートです.
>> 
>> これは条件の意味が変わってしまうので要注意です.
>
>あぁすいません.たしかにこれは条件が違いました.
>getClass() して違ったら,さらに継承元やinterface まで溯って
>調べないとまずいですね.
># 再帰とリフレクション使わないとチェックは無理ですね.

if (Integer.class.isInstance(intObj)) {
か
if (Integer.class.isAssignableFrom(intObj.getClass())) {
が
>> >  if (intObj instanceof Integer) {
に対応します.

>このように(笑),本当に1文で条件判定できないからこそ instanceof
>のような演算子があると考えれば,やはりisNull演算子の必要性が
>なかなか難しいです(^^;

instanceofはもっと重要な必然性があります(とおもっています).
要は上記のような条件判定自体が間抜けなのでするべきではないはずの
なのに、代替手段(というより*本質的に*型に応じて処理を切り替える手
法)がJavaでは利用出来ないためにある.という見解です.

言い方が変だな、instanceofの方が代替手段としてあるという感じです.

で、それにあてはめるとisNullなんて見え方の違いしかないのでいらな
い、というのは当然の成り行きなのでしょうね.

## 最初はa instanceof nullって書ければ?なんて考えたんですがねえ.
## 全然意味が通じないけど(nullインスタンス?)

──────────────────
木下 信@いであ
mailto:shinq@xxxxxxxxxx
http://village.infoweb.ne.jp/~shinq/
──────────────────