免責聲明:我不會說我是最有經驗的
Java人.可以有更簡單的方法來完成我的示例中的操作.但這是一個關于将字元串條目轉換為Enum類而不是枚舉變量的問題.我盡力解釋.
這是我想要做的簡單版本.我将有兩個不同的枚舉,我想根據使用者的需要選擇一個或另一個.例如,代碼就是這樣
public enum Letters {
A, B, C, D, E, ... , X, Y, Z
}
public enum Numbers {
ONE, TWO, THREE, ..., EIGHT, NINE, TEN
}
public static void main(String [] args) {
System.out.println("Enter in you choice, letters (Letters) or numbers(Numbers)");
String entry = "";
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
try {
entry = reader.readLine();
}
catch(Exception e){};
...
}
我想讓使用者如此,如果他輸入“Letters”,它将能夠擷取字元串條目并将其轉換為Letters Enum的變量引用.省略号是代碼的占位符.我想最終使用它,是以我可以使用
for (answer n : variable.values()) {
System.out.println(n);
}
代替
if (answer.equals("Numbers")) {
Numbers n;
for (n : Numbers.values()) {
System.out.println(n);
}
} else {
Letters l;
for (l : Letters.values()) {
System.out.println(l);
}
}
我試過了
Class> c = Class.forName("Letters");
但它不起作用.
在我的真實世界示例中,我有3個.java檔案,其中包含單獨的類,并且每個檔案都有一個枚舉.有三明治,啤酒和晶片類,他們的口号是三明治,啤酒,薯片.這些類實作了VendingMachineItem接口.最後,該接口是vendingMachine包的一部分.我不知道這些是否重要,但這就是我能提供的所有資訊.