Je veux rendre un int public défini au hasard. Mais j'ai un problème.

public static int response = rand.nextInt(6) + 1;

    public static void main(String []args){

        Random rand = new Random();

Ce code ne fonctionne pas. Je comprends que puisque l'aléatoire est à l'intérieur de la méthode principale, le public int ne peut pas récupérer le rand. Est-il possible que je puisse avoir un int public défini sur un nombre aléatoire?

-3
The Chosen Snail 20 avril 2017 à 03:37

3 réponses

Meilleure réponse

Vous pouvez utiliser la classe ThreadLocalRandom.

import java.util.concurrent.ThreadLocalRandom;

public static int response = ThreadLocalRandom.current().nextInt(6) + 1;
0
Devendra Lattu 20 avril 2017 à 00:42

Le champ rand doit être défini dans un contexte statique pour que response fasse référence à ce champ.

Soit utiliser ceci:

public static int response = new Random().nextInt(6) + 1;

Ou simplement pour un nombre aléatoire, vous pouvez utiliser le statique random () dans la classe Math.

public static int response = 1 + (int)(6 * Math.random())

Si vous devez créer d'autres nombres aléatoires, vous pouvez créer un champ rand privé.

private final static Random rand = new Random();
public static int response = rand.nextInt(6) + 1;
1
JasonM1 23 avril 2017 à 12:38

Vous pouvez utiliser un bloc d'initialisation statique , comme

public static int response;
static {
    Random rand = new Random();
    response = rand.nextInt(6) + 1;
}
1
Elliott Frisch 20 avril 2017 à 00:41