Đoạn mã sau đây cho tôi NullPointerException
. Vấn đề là trên dòng sau:NullPointerException trong khi sử dụng phương thức put của HashMap
...
dataMap.put(nextLine[0], nextLine[6]);
gì là lạ là tôi đã chạy mã này mà không có dòng trên và các cuộc gọi đến nextLine[0]
và nextLine[6]
làm việc chính xác như mong đợi - đó là họ cung cấp cho tôi trở lại các yếu tố của một tệp csv. Tôi tuyên bố và khởi tạo HashMap
với mã
HashMap<String, String> dataMap = null;
trước đó trong phương pháp
String[] nextLine;
int counter=0;
while (counter<40) {
counter++;
System.out.println(counter);
nextLine = reader.readNext();
// nextLine[] is an array of values from the line
System.out.println(nextLine[0] + " - " + nextLine[6] +" - " + "etc...");
dataMap.put(nextLine[0], nextLine[6]);
}
return dataMap;
}
Không phải là vấn đề thực sự rằng nó * được * khởi tạo rõ ràng? Để null? –
Tôi nghĩ rằng Codingscape có nghĩa là để nói "không phải là instantiated" –
Trên thực tế, có một gợi ý ở đây. Anh ta không nhận được cảnh báo bởi vì anh ta đã khởi tạo nó thành null để ghi đè lên cảnh báo trình biên dịch mà anh ta chắc chắn đang nhận được. Bạn nên làm cho nó một thói quen KHÔNG để khởi tạo biến thành giá trị "Trung lập" theo mặc định, chỉ đặt chúng thành giá trị thực của chúng để trình biên dịch có thể cảnh báo. –