Maison > Java > javaDidacticiel > Pourquoi Java génère-t-il une erreur « Types incompatibles : le vide ne peut pas être converti en… » ?

Pourquoi Java génère-t-il une erreur « Types incompatibles : le vide ne peut pas être converti en… » ?

Barbara Streisand
Libérer: 2024-12-26 00:44:09
original
137 Les gens l'ont consulté

Why Does Java Throw an

Types incompatibles : compréhension des erreurs « Le vide ne peut pas être converti en… »

Le message d'erreur « Types incompatibles : le vide ne peut pas être converti to ..." se produit lorsque le code tente d'utiliser le résultat d'une méthode qui ne renvoie aucune valeur, également connue sous le nom de void type.

Définition du problème :

Les méthodes Java déclarent leurs valeurs de retour à l'aide du mot-clé void pour indiquer qu'elles ne produisent pas de résultat. Cependant, si le code tente par erreur d'attribuer ou de gérer une valeur à partir d'une méthode void, le compilateur générera cette erreur.

Résolution :

Pour résoudre le problème, déterminez pourquoi le code attend un résultat d'une méthode void. Il existe deux approches principales :

1. Modifier la déclaration de méthode :

Modifiez la déclaration de méthode pour renvoyer un type de valeur approprié. Par exemple, si la méthode add doit renvoyer la somme de ses entrées, elle doit être déclarée comme :

private static int add(int a, int b) {
    return a + b;
}
Copier après la connexion

2. Supprimer l'affectation du résultat :

Alternativement, si le code ne nécessite pas le résultat de la méthode, supprimez l'affectation ou utilisez :

add(1, 1); // Calling the method without assigning the result
Copier après la connexion

Exemple détaillé :

Considérez le code suivant :

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

    public static void main(String[] args) {
        int result = add(1, 1);
    }
}
Copier après la connexion

Compilation de ce code avec Java 8 génère l'erreur suivante :

Main.java:9: error: incompatible types: void cannot be converted to int
        int result = add(1, 1);
                        ^
1 error
Copier après la connexion

Cette erreur indique que add est une méthode void qui ne renvoie aucune valeur, mais le code tente d'attribuer sa valeur de retour inexistante au résultat. La solution consiste à modifier la déclaration de la méthode add pour renvoyer une valeur int, comme indiqué ci-dessous :

public class Main {
    private static int add(int a, int b) {
        return a + b;
    }

    public static void main(String[] args) {
        int result = add(1, 1);
    }
}
Copier après la connexion

Conclusion :

Comprendre les « Types incompatibles : void ne peut pas être converti en..." Le message d'erreur nécessite la connaissance des méthodes void et la gestion correcte de leurs valeurs de retour. En modifiant la déclaration de la méthode ou en ajustant les attentes du code, les développeurs peuvent rectifier cette erreur et s'assurer que leur code adhère au système de types de Java.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal