• 締切済み

Javaの定数の定義について、教えてください

Android StudioでAndroidアプリを作っています。 使用言語はJavaです。 現在コーディングしている部分では定数を定義しているんですが、 例えば以下の3つの定数があるとして、 final HOGE = 1; final FOO = 2; final BAZ = 3; あとから、2つ目と3つ目の間に filnal BAR = 3; という違う定数を入れたいとします。 そうすると、 filnal BAZ = 4; に手動で数値をずらさないといけません。 定数の定義の数が膨大になっていて、非常に面倒なのです! これを回避するのに、最適な方法を教えてください。 ちなみに、スクリプト言語のHSPでは、 #enam HOGE = 1 #enum HOO #enum BAR #enum BAZ ・・・と、列挙していくだけで、自動的にコンパイラがインクリメントしてくれるので、プログラマが悩まなくても良いようになっているんですが。 同じことって、できますか? 調べた限りでは、C言語でも、似たような事ができるみたいですけど。 Javaでも可能でしょうか?

みんなの回答

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

Javaにも列挙型 (enum) があるので下記のような書き方ができます。 enum Fruit { APPLE, BANANA, CHERRY } ただし、APPLEの値を101にセットしたら自動的にBANANAが102、CHERRYが103になるような機能はありません。 詳しくは「java enum」でググってください。

pepepe777
質問者

お礼

ご回答ありがとうございます。 列挙型enumについては、一応は知っていましたが、目的に沿わないものだったので、敬遠していました。

pepepe777
質問者

補足

ただ単に自動的にカウントアップする機能が欲しかっただけなんです。 カウントアップできるなら、定数でさえなくても良いと思っています。 そこで、普通の変数とカウントアップするメソッドを組み合わせて、原始的にやっちゃったんですが、今度は、swich文のcaseに指定する値のところで「定数を指定する必要があります」というエラーが出てしまいました。 原始的でも、ブサイクでも、なんでもいいので、解決案をください・・・