• ベストアンサー

数値の定数を付ける時

数値の定数名を付ける時、悩みます。 String[]の入力数の状態により処理が異なるとき この書き方では格好悪いです。 private static final int ZERO = 0; private static final int ONE = 1; private static final int TWO = 2; 上記に変わるもの private static final int NOT_VALUE = 0; private static final int ●●● = 1; private static final int △△△ = 2; ●●●と△△△に適切な定数名が思いつきません。 どういう風に考えたらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

名前をつける時には, その名前であらわされる値の「意味」を考えてください. ですから, この場合には #1 の通り「その値のときにする処理」を名前につける (少なくとも名前の一部にする) べきです. ZERO とか ONE とかいう「値の実体をあらわす名前」はほとんど無意味 (もしくは有害なことすらある) なので, 「格好悪い」というレベルではなく「そのような名前は避けなければならない」というレベルだと思ってください. ところで, enum って使えないんだっけ?

hello_java
質問者

お礼

>ZERO とか ONE とかいう「値の実体をあらわす名前」はほとんど無意味 (もしくは有害なことすらある) せっかく定数にしたのにもかかわらず、ZEROやONEにすると、確かに無意味ですね。これならハードコーディングと変わらないですよね。 enumに値を位置づけしてそれを作成する方法もありますね。 ありがとうございました。

その他の回答 (1)

回答No.1

String[]の入力数自体に意味を持たせてはどうでしょうか? 0の場合・・・実行なし 1の場合・・・XXX処理実行 2の場合・・・YYY処理実行 private static final int EXECUTE_NONE = 0; private static final int EXECUTE_XXX = 1; private static final int EXECUTE_YYY = 2; 私なら設計レベルで上記のように意味を持たせますね。 後気になるのは0,1,2以外の場合ですかね。(多分処理なし、0と同じになるのかな)

hello_java
質問者

お礼

なるほど、分かりやすいですね。 境界値としてそれ以外の値も必要であるということですね。 勉強になりました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう