我是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,那等价的是什么?
谢谢!
答案 0 :(得分:4)
String s = "car" + i;
ParkedCar car = ParkedCar.valueOf(s);
这会按名称查找枚举实例。
请注意,如果找不到匹配的实例,此方法将抛出IllegalArgumentException
答案 1 :(得分:0)
Java与Perl非常不同。
您无法使用字符串构建变量名称,然后引用它。
(你实际上可以用反射做,但这会使零感觉)
您可以获得这样的随机枚举值:
Random rand = new Random();
ParkedCar[] carArray = ParkedCar.values();
int index = rand.nextInt(carArray.length);
ParkedCar randomCar = carArray[index];
答案 2 :(得分:0)
尝试:ParkedCar c = ParkedCar.values()[new Random()。nextInt(ParkedCar.values()。length)];