Maison >Java >javaDidacticiel >Pourquoi Java lance-t-il « Types incompatibles : void ne peut pas être converti en… » ?

Pourquoi Java lance-t-il « Types incompatibles : void ne peut pas être converti en… » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 14:35:13485parcourir

Why Does Java Throw

Comprendre les types incompatibles : le vide ne peut pas être converti

Le message d'erreur du compilateur Java "Types incompatibles : le vide ne peut pas être converti en..." indique une tentative d'utilisation d'une méthode qui ne renvoie pas de valeur d'une manière nécessitant une valeur de retour.

Qu'est-ce que Void Moyenne ?

Void est un type unique en Java qui signifie « aucune valeur ». Les méthodes déclarées comme nulles ne renvoient aucun résultat.

Causes de l'erreur

Cette erreur se produit lorsque :

  • Une méthode déclarée comme nulle void est appelé et le code essaie d'attribuer sa valeur de retour à une variable ou de l'utiliser dans une expression.
  • Une méthode attend une valeur de retour d'un type spécifique, mais la méthode appelée renvoie void.

Comment corriger l'erreur

La solution dépend du comportement souhaité :

  • Si la méthode doit renvoyer une valeur : Modifiez la déclaration de la méthode pour renvoyer le type approprié (par exemple, int, String).
  • Si la méthode n'a pas besoin de renvoyer une valeur : Omettez l'affectation ou utilisez la méthode sans tenter d'utiliser sa valeur de retour.

Exemple détaillé

Considérez le code suivant :

public class Test {
    private static void add(int a, int b) {
        int res = a + b;
    }

    public static void main(String[] args) {
        int sum = add(1, 1);
    }
}

Quand compilé, ce code entraîne l'erreur :

error: incompatible types: void cannot be converted to int

Cela est dû au fait que la méthode add est déclarée comme nulle, mais son appel dans la méthode principale tente d'attribuer sa valeur de retour à une variable int. Pour résoudre ce problème :

  • Option 1 :Modifiez la méthode d'ajout pour renvoyer le résultat :
private static int add(int a, int b) {
    int res = a + b;
    return res;
}
  • Option 2 : Omettre l'affectation dans la méthode principale :
public static void main(String[] args) {
    add(1, 1);
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn