Java - 如何使用枚举

标签 java enums

我最近(<- 关键字)开始使用 Java 编程,而且我很喜欢它! 但我在尝试独立编程时遇到了一些障碍...... 我的想法是制作一个有趣的小角色创建器 - RPG 风格,但我不知道如何让用户在不使用一堆 If 语句的情况下选择一个类别。

我想使用枚举,尽管我不太熟悉它们。

到目前为止,我已经询问用户想要玩什么类别+我已经创建了枚举。

    String Name;

    System.out.println("Welcome to my Character Creator 2.0!\n");
    Thread.sleep(2000);
    System.out.print("First off, what do you want your characters name to be?\n\nName : ");
    Name = Scan.nextLine();
    Thread.sleep(1000);
    System.out.print("\nYou are now to be known as "+ Name + "!");

    System.out.print("\n\n" + Name + ", what class do you want to be? ");
    Thread.sleep(1000); 
        System.out.print("Classes available : Knight\nMage\nDruid\nNinja\nArcher\nAdventurer");
}

所以,是的,我基本上希望能够直接从枚举中调用类,但我不确定如何做到这一点。我尝试了一些愚蠢的事情,比如:Class = Scan.nextInt();... 但显然没用

最佳答案

执行此操作的一个简单方法是使用 valueOf Enum 类的方法。像这样的事情:

String name;
...
name = scan.next();
UserClass userClass = UserClass.valueOf(name);

在本例中,UserClass 是枚举的名称,可能如下所示:

public enum UserClass{
    KNIGHT,
    MAGE,
    DRUID,
    NINJA
    // other classes as needed
}

请注意,扫描仪行假定用户正确输入了名称。如果他们没有,您会得到 IllegalArgumentException ,您可以使用 try...catch block 捕获它。

旁注:我确信您已经看到了这些消息,但请记住 java 标准是变量名以小写字母开头。否则很难确定所讨论的实体是一个类(以大写字母开头)还是一个命名不当的变量。

关于Java - 如何使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21115685/

相关文章:

Java:编译时的枚举值?

java - Jetty - 如何以编程方式在 web.xml 中强制执行安全约束

java - 如何检查 Vector 是否存在并且已在 Java 中定义?

java - 两个 JComboBoxes 用户不能选择相同的值

java - 将枚举转换为类,反之亦然

java - 在 Java 中使用范围查找枚举

C++ 将值设置为类内的枚举项

java - 测试驱动开发、单元测试

java - 使用 XSL 进行 XML 转换

android - 如何使用 | 生成枚举值在他们中