【问题标题】:Accessing the position of the elements of an Enum [duplicate]访问枚举元素的位置[重复]
【发布时间】:2019-05-14 14:43:43
【问题描述】:

我有一个 Enum 文件,其中包含一些 Java 值。在我的主程序中,我有一个接收整数作为参数的函数,我必须根据该值执行不同的操作,这与枚举元素的数量相同。

我正在做以下事情:

public String operation(int option, int chosenBox){
    String result = "";

    switch(option){
        case 0:
            model.startGame(this.playersName);
            result = "...";
            break;
        case 1:
            model.play();
            result = "...";
            break;

我需要更改案例的选项以指向枚举的元素而不是数字,因为有时我需要在枚举中添加一个元素,最终我需要更改所有数字。

枚举被称为 MenuOption,我尝试过这样做:

case OpcionMenu.PLAY.ordinal(): // This is for case 0

但出现如下错误:“需要常量表达式”

【问题讨论】:

    标签: java


    【解决方案1】:

    你根本不需要这个职位,你可以直接switch覆盖enum

    public String operation(Option option, int chosenBox) {
        switch(option) { // ...
    }
    

    如果您坚持将int 传递给该方法,则可以这样做

    public String operation(int optionIndex, int chosenBox) {
        Option option = Option.values()[optionIndex];
        switch(option) { // ...
    }
    

    【讨论】:

    • 谢谢!有效。我必须传递一个整数,所以这就是我问的原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2013-06-09
    • 2019-04-27
    • 1970-01-01
    相关资源
    最近更新 更多