2013-01-05 116 views
-1

我是新来的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的等价物如果存在?

谢谢!

+4

ParkerCard.values()会给你的数组。你可能会得到数组的第i个值。 – 2013-01-05 02:08:53

+0

你的意思是汽车会员不固定?用Java实现是不可能的。 Enum成员必须是预定义的。 –

+0

谢谢@kkkkk! ParkedCar.values()[i]为我工作。 – stackoverflow

回答

0

Java与Perl非常不同。

你不能用一个字符串建立一个变量名然后引用它。

实际上,你可以用反射做,但这里使感)

你可以随机获得一个枚举值是这样的:

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

尝试:ParkedCar C = ParkedCar.values()[new Random()。nextInt(ParkedCar.values()。length)];

相关问题