ホームページ > Java > &#&チュートリアル > Java が「互換性のない型: void は...に変換できません」エラーをスローするのはなぜですか?

Java が「互換性のない型: void は...に変換できません」エラーをスローするのはなぜですか?

Barbara Streisand
リリース: 2024-12-26 00:44:09
オリジナル
138 人が閲覧しました

Why Does Java Throw an

互換性のない型: 「Void は...に変換できません」エラーについて

エラー メッセージ「互換性のない型: void は変換できません」 to ...」は、値を返さないと宣言されたメソッドの結果 (void とも呼ばれる) をコードが使用しようとしたときに発生します。 type.

問題の定義:

Java メソッドは、結果を生成しないことを示す void キーワードを使用して戻り値を宣言します。ただし、コードが誤って void メソッドの値を割り当てたり処理しようとすると、コンパイラによってこのエラーが生成されます。

解決策:

問題を解決するには、次のことを確認してください。コードが void メソッドからの結果を期待している理由。主なアプローチは 2 つあります。

1.メソッド宣言の変更:

適切な値の型を返すようにメソッド宣言を変更します。たとえば、add メソッドが入力の合計を返す必要がある場合は、

private static int add(int a, int b) {
    return a + b;
}
ログイン後にコピー

2 のように宣言する必要があります。結果の割り当ての削除:

または、コードがメソッドの結果を必要としない場合は、割り当てを削除するか、次を使用します:

add(1, 1); // Calling the method without assigning the result
ログイン後にコピー

詳細な例:

次の点を考慮してくださいコード:

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);
    }
}
ログイン後にコピー

このコードを Java 8 でコンパイルすると、次のエラーが生成されます:

Main.java:9: error: incompatible types: void cannot be converted to int
        int result = add(1, 1);
                        ^
1 error
ログイン後にコピー

このエラーは、add が値を返さない void メソッドであることを示しますが、コードは値を返そうとします。存在しない戻り値を result に代入します。解決策は、次に示すように、add メソッドの宣言を変更して int 値を返すようにすることです。

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);
    }
}
ログイン後にコピー

結論:

「互換性のない型: void は使用できません」を理解する...」というエラー メッセージを表示するには、void メソッドとその戻り値の正しい処理に関する知識が必要です。メソッド宣言を変更するか、コードの期待値を調整することで、開発者はこのエラーを修正し、コードが Java の型システムに準拠していることを確認できます。

以上がJava が「互換性のない型: void は...に変換できません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート