Rumah >Java >javaTutorial >Mengapa Java Throw 'Jenis tidak serasi: void tidak boleh ditukar kepada ...'?

Mengapa Java Throw 'Jenis tidak serasi: void tidak boleh ditukar kepada ...'?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 14:35:13477semak imbas

Why Does Java Throw

Memahami Jenis Tidak Serasi: Void Tidak Boleh Ditukar

Mesej ralat pengkompil Java "Jenis tidak serasi: void tidak boleh ditukar kepada ..." menunjukkan percubaan untuk menggunakan kaedah yang tidak mengembalikan nilai dengan cara yang memerlukan pulangan nilai.

Apakah Maksud Void?

Void ialah jenis unik dalam Java yang menandakan "tiada nilai." Kaedah yang diisytiharkan sebagai batal tidak mengembalikan sebarang hasil.

Punca Ralat

Ralat ini timbul apabila:

  • Kaedah yang diisytiharkan sebagai void dipanggil dan kod cuba untuk menetapkan nilai pulangannya kepada pembolehubah atau menggunakannya dalam ungkapan.
  • A kaedah menjangkakan nilai pulangan jenis tertentu, tetapi kaedah yang dipanggil mengembalikan batal.

Cara Membetulkan Ralat

Penyelesaian bergantung pada tingkah laku yang diingini :

  • Jika kaedah harus mengembalikan nilai: Ubah suai pengisytiharan kaedah untuk kembali jenis yang sesuai (cth., int, String).
  • Jika kaedah tidak perlu mengembalikan nilai: Abaikan tugasan atau gunakan kaedah tanpa cuba menggunakan nilai pulangannya.

Contoh Terperinci

Pertimbangkan perkara berikut kod:

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

Apabila disusun, kod ini menghasilkan ralat:

error: incompatible types: void cannot be converted to int

Ini kerana kaedah tambah diisytiharkan sebagai tidak sah, namun panggilan kepadanya dalam kaedah utama cuba untuk memberikan nilai pulangannya kepada pembolehubah int. Untuk membetulkannya:

  • Pilihan 1: Tukar kaedah tambah untuk mengembalikan hasil:
private static int add(int a, int b) {
    int res = a + b;
    return res;
}
  • Pilihan 2: Abaikan tugasan dalam kaedah utama:
public static void main(String[] args) {
    add(1, 1);
}

Atas ialah kandungan terperinci Mengapa Java Throw 'Jenis tidak serasi: void tidak boleh ditukar kepada ...'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn