有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

枚举$var的Java等价物是什么?

我是Java新手,有个新问题。我试图随机检索一个枚举值,如下所示

public enum ParkedCar {
     car1(....),
     car2(....);
......
}

Random rand = new Random();
int i = 1 + rand.nextInt(5);
String s = "car" + i;
ParkedCar car = ParkedCar.$s;

然而,与Perl中可以使用$s插入s的值不同,s在Java中无效。如果存在Java等价物,它是什么

谢谢


共 (3) 个答案

  1. # 1 楼答案

    试试看:ParkedCar c=ParkedCar。values()[new Random().nextInt(ParkedCar.values().length)]

  2. # 2 楼答案

    你想要^{}

    String s = "car" + i;
    ParkedCar car = ParkedCar.valueOf(s);
    

    这将按名称查找枚举实例

    请注意,如果找不到匹配的实例,此方法将抛出^{}

  3. # 3 楼答案

    Java与Perl非常不同

    不能用字符串构建变量名,然后引用它

    你实际上可以通过反射来实现,但这在这里是有意义的。)

    您可以获得如下随机枚举值:

    Random rand = new Random();
    ParkedCar[] carArray = ParkedCar.values();
    int index = rand.nextInt(carArray.length);
    ParkedCar randomCar = carArray[index];