以下のソースの場合、どれが書き方としてすっきりすると思いますか?順位と理由をお答えください。

(仕様によって違うよーと言うのであればその理由も御願いします。)

※順位の書き方は
 3 > 1 > 2
と書いてください。
(3番が一番優れていると思う場合)


1)
public String run(String item) {
if (item == null) {
return null;
}

//なんか処理***

return 結果;
}
//**************************************

2)
public String run(String item) {

String 結果 = null;
if (item != null) {

//なんか処理***
}

return 結果;
}
//**************************************

3)
public String run(String item) {
if (item == null) {
throw new NullPointerException("Item is Null.");
}

//なんか処理***

return 結果;
}
//**************************************

回答の条件
  • 1人20回まで
  • 300 ptで終了
  • 登録:2006/04/27 13:36:02
  • 終了:2006/05/04 13:40:02

回答(8件)

ただいまのポイント : ポイント11 pt / 300 pt ツリー表示 | 新着順
1=3>2 yo-kun2006/04/29 23:19:19ポイント1pt
1と3は仕様により異なります。 メソッドの仕様がそもそも異なるので当然ですよね。 どちらかといえば引数がStringであることを考慮するとStringにnullを許容しなければならないことは多くないと思われるので、(投げる ...
3>1>2 j_frankenheimer2006/04/29 13:53:14ポイント1pt
3>1>2 です。 どれが一番すっきりするか?との問いですが、すっきりがよくわかりませんでしたので、アプリを作るのに一番ふさわしいという観点で選びました。 2は一番避けたいなぁと思いました。変数を初期化 ...
仕様により変わる dev_zer02006/04/27 14:12:59ポイント4pt
1と3は // なんか処理*** でitemにnullが入ることが仕様上ありえるのか、ありえないのかで変わると思われます。 itemにnullが入ることが仕様上存在し得る場合、例外をなげるべきではありませんし、 itemにnullが入ることが仕 ...
同意 yuki_n2006/04/27 17:30:10ポイント1pt
3に関しては、他と仕様が違うので比較できない。 1>2 3は別次元 dev_zer0様の意見に少し追加。(個人的意見ですが) 『なんか処理』が長くなると(100ステップとか)、 if文の開始と終了がどこなのか、判別し辛くな ...
Re:仕様により変わる Paul2006/04/27 15:26:57ポイント2pt
String 結果 のスコープを狭くするという意味でも1 > 2だと思います。 3は論外です。IllegalArgumetExceptionなら分かるけど、 NullPointerExceptionはnullオブジェクトのpropertieを参照したとき用なので。 あと、例外と、値返し ...
Re:仕様により変わる あーる2006/04/27 15:49:04
IllegalArgumentExceptionですか。なるほど!! でも、引数が null と引数の値が想定外と分けたい場合は NullPointerException を使う場合もあるので 論外は言いすぎな気がしますね。 例えば java.lang.System.getProperty(String key, String def) ...
2>3>1 gajin7772006/04/27 14:08:40ポイント1pt
戻り値が何なのか追いやすい
2>1>3 きゃづみぃ2006/04/27 14:03:10ポイント1pt
ぱっとみた感じで。

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません