- PR -

構文がわかりません

投稿者投稿内容
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-10-07 21:21
なぜそんなに条件演算子を毛嫌いする人が多いのか気になります。
オペランドに複雑な式が入ったりネストさせるとやな感じですけど。

引用:
資格試験ででそうな構文ですね。
稼動中のシステムメンテでこのようなコードを見つけたら、
ぞっとします。

boolean flag = false;

if(debug != null) {
flag = debug.booleanValue();
}

return flag;



Booleanとして返すメソッド(リフレクション使った場合は必ずなります)を
呼んでいる場合でさらにnullをfalseと扱いたいなら、Booleanとbooleanで
ほとんど同じ目的の変数を2つ宣言することになるのでは?

その際に変数を1つで、かつメソッドを複数回呼ばないためには条件演算子を
使うのがベストだと思います。わざわざifで冗長化する必要性がありますか?

たかが条件演算子で可読性が損なわれると考えている方は、業務系のCGIで
Perlが使われることもあることをどのように感じておられるのでしょうか?

条件演算子よりはるかにわかりにくいシンタックスシュガー満載ですよ?
架空兎
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 78
お住まい・勤務地: さいたま氏
投稿日時: 2005-10-07 21:26
戻り値が boolean なら、私の場合、

コード:

return debug != null && debug.booleanValue();


というふうに書く場合があります。
あしゅ
ぬし
会議室デビュー日: 2005/08/05
投稿数: 613
投稿日時: 2005-10-07 21:28
あっと、そのパターンがありましたね。。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-10-07 21:51
こんにちは。
C++ユーザーの私がこんなところで発言するのは恐縮ですが…

私は三項演算子を別に使うことに抵抗ありませんし、好んで使っています。
記述がシンプルになるし、個人的には良いと思っているのですが。
他人のソースコードでも、三項演算子を使っていると玄人っぽさを感じますが…
嫌われている人も、たくさんおられるのですね。

引用:

びしばしさんの書き込み (2005-10-07 17:18) より:

参考までに、どこでこのような「悪い見本」コードを見つけられたのか教えていただけますか ?



三項演算子の使用例のことを指しているのでしたら、
Javaユーザーに一番身近な、JRE(rt.jar)のソースコードをご覧になられたらよいかと思います。
三項演算子がいっぱい使われていますから、すぐに見つかると思います。


[ メッセージ編集済み 編集者: Tdnr_Sym 編集日時 2005-10-07 22:10 ]
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-10-08 23:26
るぱんです。

悪い見本って、実は三項演算子じゃなくて、debugって変数名なんじゃ・・・?

参考→三項

[ メッセージ編集済み 編集者: るぱん 編集日時 2005-10-08 23:27 ]
mayo
会議室デビュー日: 2005/09/13
投稿数: 4
投稿日時: 2005-10-09 00:37
むしろ bool と null の比較なんでは?
この気持ち悪さはなんともいえませんが
JAVAって bool に null が入るんですねぇ
それとも null == false なのかな?
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2005-10-09 00:52
るぱんです。

あ、それかも?
プリミティブ型だった記憶が。。。

それは確かにおかしい。
やはり、三項演算子がおかしいってのは違和感ありです。
権兵衛
ベテラン
会議室デビュー日: 2002/09/24
投稿数: 50
投稿日時: 2005-10-09 01:51
Boolean であって boolean ではないのでプリミティブ型じゃないです。

スキルアップ/キャリアアップ(JOB@IT)