2013-01-05 161 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)];

相關問題