0
import java.util.*;
class Main{
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int val=sc.nextInt();

Lights light=Lights.valueOf(val);
//How to take the value of variable "val" so that if we print '0' Red is displayed. 
int set=light.setVal(val);
System.out.println(light.getVal());
}}
enum Lights {
Red(0), Yellow(1), Green(2);
int i;
Lights(int i) { this.i=i; }
int getVal() { return i; }
void setVal(int m) { i=m;}
    }

枚举定义时如何使用“val”的值..?

例如,在命令行参数的情况下,我们编写 valueOf(args[0]) 但在这种情况下,当我们想使用“val”时应该做什么..?

4

1 回答 1

0

我相信您正在寻找ordinal()

返回此枚举常量的序号(它在其枚举声明中的位置,其中初始常量的序号为零)。大多数程序员不会使用这种方法。它设计用于复杂的基于枚举的数据结构,例如 EnumSet 和 EnumMap。

如果你想要枚举类型,那么你可以使用:

Lights light = Lights.values()[ordinal];
于 2013-07-03T16:29:47.553 回答