Rumah >Java >javaTutorial >Mengapa Saya Mendapat NullPointerException Apabila Mencipta dan Menggunakan Tatasusunan Objek dalam Java?

Mengapa Saya Mendapat NullPointerException Apabila Mencipta dan Menggunakan Tatasusunan Objek dalam Java?

Patricia Arquette
Patricia Arquetteasal
2025-01-05 22:07:40701semak imbas

Why Do I Get a NullPointerException When Creating and Using an Object Array in Java?

NullPointerException semasa Penciptaan Tatasusunan Objek: Menangani Isu

Apabila cuba bekerja dengan pelbagai objek, anda mungkin menghadapi NullPointerException. Pengecualian ini berlaku apabila anda cuba mengakses elemen tatasusunan yang belum dimulakan lagi. Untuk memahami masalah, mari kita analisa kod yang disediakan:

public class ResultList {
    public String name;
    public Object value;
}

public class Test {
    public static void main(String[] args){
        ResultList[] boll = new ResultList[5];
        boll[0].name = "iiii";
    }
}

Dalam kod ini, anda mentakrifkan kelas ResultList yang mengandungi dua medan: nama dan nilai. Anda kemudian membuat tatasusunan yang dipanggil boll dengan lima elemen (null secara lalai). Apabila anda cuba menetapkan nilai untuk boll[0].name, anda mendapat NullPointerException kerana boll[0] adalah batal.

Untuk menyelesaikan isu ini, anda perlu memulakan elemen tatasusunan boll sebelum mengakses mereka. Anda boleh mencapai ini dengan membuat seketika objek ResultList baharu dan memberikannya kepada setiap elemen:

public static void main(String[] args){
    ResultList[] boll = new ResultList[5];
    for (int i = 0; i < 5; i++) {
        boll[i] = new ResultList();
    }
    boll[0].name = "iiii";
}

Dengan memulakan elemen tatasusunan boll, anda memastikan ia mempunyai rujukan yang sah, mengelakkan NullPointerException. Ingat, apabila bekerja dengan tatasusunan objek, adalah penting untuk memulakan elemennya secara eksplisit sebelum menggunakannya.

Atas ialah kandungan terperinci Mengapa Saya Mendapat NullPointerException Apabila Mencipta dan Menggunakan Tatasusunan Objek dalam Java?. 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