こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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でも可能でしょうか?

投稿日時 - 2019-10-16 11:54:15

QNo.9667729

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

ANo.1

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

投稿日時 - 2019-10-16 18:46:55

補足

ただ単に自動的にカウントアップする機能が欲しかっただけなんです。
カウントアップできるなら、定数でさえなくても良いと思っています。

そこで、普通の変数とカウントアップするメソッドを組み合わせて、原始的にやっちゃったんですが、今度は、swich文のcaseに指定する値のところで「定数を指定する必要があります」というエラーが出てしまいました。

原始的でも、ブサイクでも、なんでもいいので、解決案をください・・・

投稿日時 - 2019-10-17 04:15:16

お礼

ご回答ありがとうございます。

列挙型enumについては、一応は知っていましたが、目的に沿わないものだったので、敬遠していました。

投稿日時 - 2019-10-17 04:13:16

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-