-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;

ただし、$s を使用して s の値を挿入できる Perl とは異なり、Java では $s は有効ではありません。存在する場合、Java に相当するものは何ですか?

ありがとう!

4

3 に答える 3

4

あなたがしたいEnum.valueOf(String s)

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

これは、列挙型インスタンスをその名前で検索します。

一致するインスタンスが見つからない場合、このメソッドはIllegalArgumentException

于 2013-01-05T02:18:44.183 に答える
0

Java は Perl とは大きく異なります。

文字列で変数名を作成して参照することはできません。

実際にはリフレクションでそれを行うことができますが、ここでは意味がありません)

次のようにランダムな列挙値を取得できます。

Random rand = new Random();
ParkedCar[] carArray = ParkedCar.values();
int index = rand.nextInt(carArray.length);
ParkedCar randomCar = carArray[index];
于 2013-01-05T02:13:18.627 に答える
0

試してみてください: ParkedCar c=ParkedCar.values()[new Random().nextInt(ParkedCar.values().length)];

于 2013-01-05T02:18:14.937 に答える