Le scanner ne peut pas être déréférencé

Mon problème est de créer une méthode appelée getScanner, et chaque fois qu'elle est appelée, une autre méthode peut appeler getScanner pour obtenir la ligne d'entrée suivante.

Code:

public static void getScanner() {
    Scanner input = new Scanner(System.in);
}

public static String getInput() { 
    String userInput = getScanner().nextLine();
    return userInput
}

Erreur

   error: void cannot be dereferenced
                          String userInput = getScanner().nextLine();
                          1 error

Essentiellement, j'ai plusieurs méthodes qui ont besoin d'utilisateur Scanner comme entrée, plutôt que de déclarer une variable globale ou locale, je veux appeler une méthode qui va créer un scanner en entrée chaque fois qu'il est appelé et assigner une variable à cette entrée.

0

3 Réponses

Vous ne renvoyez pas une instance de Scanner . Utilisation:

public static Scanner getScanner(){
return new Scanner(System.in);
}
0
ajouté

Vous avez défini le type de retour vide qui ne renvoie rien. Comme vous avez besoin d'un objet scanner, renvoyez un scanner dans la méthode.

public static Scanner getScanner() {
    Scanner input = new Scanner(System.in);
    return input }

public static String getInput() { 
    String userInput = getScanner().nextLine();
    return userInput }
0
ajouté
Vous ne retournez rien
ajouté l'auteur nom, source
Upvoted votre réponse :)
ajouté l'auteur nom, source
Edited la réponse.
ajouté l'auteur capt.swag, source
Si cela répond à votre question, vous devez marquer la réponse comme correcte. @OP
ajouté l'auteur capt.swag, source

Code de travail. Testé et compilé.

public class testj
{

    public static void main(String[] args)
    {
        System.out.println(getInput());
    }

    private static String getInput()
    {
        String userInput = getScanner().nextLine();
        return userInput;
    }

    private static Scanner getScanner()
    {
        return new Scanner(System.in);
    }
}

Nous devons spécifier dans l'en-tête de la méthode ce que object est retourné.


Shorter version for getInput()


Vous pouvez également modifier cette méthode comme ci-dessous

    private static String getInput()
    {
        return getScanner().nextLine();
    }
0
ajouté
Sur une note plus légère, vous dites "Working Code Tested and Compiled" mais vous n'avez pas ajouté de classe: p
ajouté l'auteur nom, source