你如何从控制台获取enumJava 类型的输入?
我有这门课:
class enumTest {
public enum Color {
RED, BLACK, BLUE
}
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
Color color = input.readLine();
public static void main (String[]args) {
switch (color) {
...
Run Code Online (Sandbox Code Playgroud)
在这条线上,Color color = input.readLine();我收到一个错误消息:
incompatible types: String cannot be converted to Color
Run Code Online (Sandbox Code Playgroud)
我如何解决这个问题?
每个枚举都有一个自动生成的静态valueOf方法来解析字符串。所以你可以使用:
String colorName = input.readLine();
Color color = Color.valueOf(colorName);
Run Code Online (Sandbox Code Playgroud)
但是,如果给定的名称没有任何相应的枚举值,这将引发异常。您可能想要创建一个Map<String, Color>(在内部Color或单独),以便您可以更优雅地处理此问题。