0

メソッドを使用して int の乱数を生成しようとしています。int はプリミティブ型であり、 int cannot be deferenceed エラーが発生するため、これを実行できないことはわかっています。メソッドを使用してintの値を取得できる場所はありますか?


public int move()
 {
     Random random = new Random();
     int generatedNum = random.nextInt(7 - 1) + 1;

     return generatedNum;
 }

public static void main(String[] args)
{
    int player1 = 0;
    int player2 = 0;

    player1 = player1.move();
    player2 = player2.move();

}
4

3 に答える 3

0

int はプリミティブ型で、Integer は final であるため、5.move() を記述することはできません。整数をラップするだけのクラスを作成することはできますが、それを使って算術演算を行うことはできません。

Iterator<Integer>実装する価値のあるインターフェースかもしれません。

于 2013-04-03T23:30:39.917 に答える
0

Integer クラスに似た独自のクラスを作成できます (残念ながらfinal、それをサブクラス化することもできます)。次に、そのクラスに必要なメソッドを追加します。値を取得したい場合に使用するのは少し不便ですが、面倒ではありません。

于 2013-04-03T23:32:54.753 に答える
0

あなたは何をしようとしているのですか?これは機能しますが、それがあなたが望むものかどうかはわかりません...

// made this static so you don't need a class reference
public static int move()
 {
     Random random = new Random();
     int generatedNum = random.nextInt(7 - 1) + 1;

     return generatedNum;
 }

public static void main(String[] args)
{
    int player1 = 0;
    int player2 = 0;

    // Now we just call the static method move to set the ints.
    player1 = move();
    player2 = move();

}
于 2013-04-03T23:28:11.390 に答える