Correction de l'erreur Void Type Not Allowed Here en Java

Rupam Yadav 12 octobre 2023
  1. Qu’est-ce que l’erreur void type not allowed here ?
  2. Correction void type not allowed here Erreur en Java - Ne pas imprimer dans la méthode main()
  3. Correction void type not allowed here Erreur en Java - Renvoyez une chaîne au lieu d’imprimer dans printMessage1()
Correction de l'erreur Void Type Not Allowed Here en Java

Nous utilisons de nombreuses fonctions lors de la création de gros programmes en Java, et parfois des erreurs peuvent apparaître. L’une des erreurs que le compilateur peut générer est l’erreur void type not allowed here discutée dans cet article.

Qu’est-ce que l’erreur void type not allowed here ?

Nous créons une fonction en Java en écrivant le modificateur d’accès, un type de retour, un nom de fonction entre parenthèses et le corps de la fonction est entouré d’accolades. On peut retourner plusieurs types de données depuis une fonction, mais quand on ne veut rien retourner, on utilise le mot clé void pour dire au compilateur qu’on ne veut rien retourner de la méthode.

Dans le programme ci-dessous, nous avons une classe JavaExample qui contient deux méthodes, la première est la fonction main() et la seconde est le printMessage1() qui a une instruction d’impression System.out.println() qui imprime un message que printMessage1() reçoit en paramètre.

La fonction printMessage1() ne renvoie rien et affiche simplement un message ; nous utilisons le type void comme type de retour. Nous utilisons une autre instruction print mais dans la méthode main() et appelons la fonction printMessage1() à l’intérieur avec String 1 comme argument.

Lorsque nous exécutons le code, la sortie génère une erreur, void type not allowed here. Cela arrive parce que printMessage1() a déjà une instruction d’impression qui imprime la valeur, et il ne renvoie rien lorsque nous appelons la fonction dans une instruction d’impression ; il n’y a rien à imprimer dans la méthode main.

public class JavaExample {
  public static void main(String[] args) {
    System.out.println(printMessage1("String 1"));
  }

  static void printMessage1(String value) {
    System.out.println(value);
  }
}

Production :

java: 'void' type not allowed here

Correction void type not allowed here Erreur en Java - Ne pas imprimer dans la méthode main()

La première solution à cette erreur est que nous n’appelons pas la fonction printMessage1() dans une instruction d’impression car il existe déjà une instruction System.out.println() dans la méthode elle-même, et elle ne renvoie rien.

Dans ce code, nous écrivons le corps de la fonction printMessage1() sous la forme d’une instruction println(). Nous appelons la méthode printMessage1() dans main() avec une chaîne en argument.

public class JavaExample {
  public static void main(String[] args) {
    printMessage1("String 1");
  }

  static void printMessage1(String value) {
    System.out.println(value);
  }
}

Production :

String 1

Correction void type not allowed here Erreur en Java - Renvoyez une chaîne au lieu d’imprimer dans printMessage1()

La deuxième solution consiste à spécifier un type de retour dans la fonction, à renvoyer une valeur et à l’afficher partout où nous appelons la fonction.

On écrit la méthode printMessage1() mais avec un type de retour String. Dans le corps de la méthode, nous utilisons le mot-clé return avec la valeur que nous voulons renvoyer lors de l’appel. Dans la méthode main(), nous appelons la fonction printMessage1() dans une instruction d’impression, mais il n’y aura pas d’erreur car la méthode renvoie une valeur.

public class JavaExample {
  public static void main(String[] args) {
    System.out.println(printMessage1("How are you doing today?"));
    System.out.println(printMessage1("String 2"));
  }

  static String printMessage1(String value) {
    return value;
  }
}

Production :

How are you doing today?
String 2
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Void