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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-23 19:47:10986ブラウズ

Why Does Java Throw an

互換性のない型: void を変換できません

問題:

Java コンパイル メッセージ「互換性のない型: void を変換できません」 ... に変換されました」は、コンパイラが void 型に関連する型エラーを検出したことを示します。具体的には、値を返さないメソッドの結果をコードが使用しようとしていることを意味します。

詳細な説明:

プリミティブとは異なり、void 型または参照型は、値が存在しないことを示します。これは主に、メソッドが値を返さないことを示すためにメソッド宣言で使用されます。このようなメソッドを呼び出した場合、使用できる値が返されることは期待できません。

例:

次のコードを考えてみましょう:

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);
    }
}

このコードをコンパイルすると、次のエラーが表示されます:

error: incompatible types: void cannot be converted to int
        int sum = add(1, 1);
                     ^

このエラーadd メソッドの結果 (void) を int 変数に代入しようとしていることを示します。ただし、void は値を表さないため、どの型の変数にも割り当てることはできません。

解決策:

このエラーを修正するには、次のいずれかを実行します。

  1. メソッド宣言を変更します: の結果などの値を返すように add メソッドを変更します。
  2. 戻り値の使用を避ける: 戻り値を変数に代入しようとする行を削除します (例: int sum = add(1, 1); を add に置き換えます) (1, 1);).

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。