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

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

※順位の書き方は
 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/05/04 13:40:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答8件)

すべて | 次のツリー>
1=3>2 yo-kun2006/04/29 23:19:19ポイント1pt

1と3は仕様により異なります。

メソッドの仕様がそもそも異なるので当然ですよね。

どちらかといえば引数がStringであることを考慮するとStringにnullを許容しなければならないことは多くないと思われるので、(投げる例外の種類はともかく)例外を投げる3を推します。

例外の種類はdev_zer0さんが述べているようにIllegalArgumentExceptionが適当かと思います。(論外、とまでは思いませんが)


で、1と2ですが2よりも1を推す理由は2つあります。

  • ソースをひと目見ただけで仕様がわかる

最初の2行を見るだけで、以降のソースを見ることなく「引数がnullの場合はnullを返す」という仕様がはっきりと分かります。

2だとそうはいきません。もしかしたらelse~があるかもしれませんから。

  • ネストが深くなるのを回避できる

個人的な好みですが、1と比較して2だとネストのレベルが1つ上がります。1でなら回避できるのに2のコードでネスト(というかインデント)がムダに増えるのが個人的には嫌です。

すべて | 次のツリー>

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

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

トラックバック

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

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

回答リクエストを送信したユーザーはいません