teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

追記

2019/10/18 08:02

投稿

Rai_Feit
Rai_Feit

スコア7

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,8 @@
5
5
  Javaでマジックナンバを防ぐために, enumを実装したいのですが,
6
6
  その際に異なる列挙子に重複する定数を扱う方法はありますか?
7
7
 
8
+ 追記: 具体的には, コンストラクタで同じフィールド変数に書き込んでいるので, 引数から列挙子を逆引きするときに(parseメソッド)目的の列挙子をうまく呼べないという事象が発生している.
9
+
8
10
  マジックナンバを単にstatic final などで保持するよりも, 型の安全性があると伺ったので試用しましたが,
9
11
  同じ値の定数に対してenumは有効ではないのでしょうか?
10
12
 

1

動作イメージを追加

2019/10/18 08:02

投稿

Rai_Feit
Rai_Feit

スコア7

title CHANGED
File without changes
body CHANGED
@@ -80,11 +80,13 @@
80
80
  画面遷移先
81
81
 
82
82
  ```java
83
+ // メニュー1内とする
83
84
  try
84
85
  {
85
86
  switch (Type.parse(scanner()))
86
87
  {
87
88
  case りんご:
89
+       // りんごに対する処理
88
90
  case ぶどう:
89
91
  case 戻る:
90
92
   default:
@@ -97,6 +99,22 @@
97
99
  controllInquryDisplay();
98
100
  }
99
101
  ```
102
+ ###イメージ
103
+
104
+ サンプルメニュー
105
+ 1) メニュー1
106
+ 2) メニュー2
107
+ 該当の項目を入力してください
108
+ ユーザ入力 : 1
109
+
110
+ メニュー1
111
+ 1) りんご
112
+ 2) ぶどう
113
+ 該当の項目を入力してください
114
+ ユーザ入力 : 1
115
+
116
+ 上記のような動作イメージです
117
+ 現在は, メニュー1で1を入力すると(当然ですが) case りんご: に入りません
100
118
  ######候補案
101
119
  1. enumを複数用意する
102
120
  ex) enum Type1{}, enum Type2{}, ...