天天看點

java字元串轉為enum_java – 将字元串轉換為Enum類

免責聲明:我不會說我是最有經驗的

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包的一部分.我不知道這些是否重要,但這就是我能提供的所有資訊.