0
我有以下對象:在對象中填充HashMap時的NPE?
public class PersonDTO {
private Map<String, String> idsAndNames;
//default constructor
public PersonDTO() {
}
public PersonDTO(Map<String, String> idsAndNames) {
this.idsAndNames = idsAndNames;
}
public void setIdsAndNames(Map<String, String> idsAndNames) {
this.idsAndNames = idsAndNames;
}
public Map<String, String> getIdsAndNames() {
return idsAndNames;
}
public void addEntryToMap(String id, String name) {
this.idsAndNames.put(id, name);
}
}
每當我試着填充物內的map
(參見下面的方法),我得到一個Null Pointer Exception
說,Map
是null
。我怎樣才能解決這個問題?
方法來填充(內主類)對象:
public PersonDTO populatePersonDTO(List<String> ids, List<String> names){
Map<String, String> idsAndNames = new HashMap<>();
PersonDTO personDTO = new PersonDTO();
personDTO.setIdsAndNames(idsAndNames);
for(int i=0;i<ids.size();i++){
personDTO.addEntryToMap(ids.get(i),names.get(i)); //line throwing NPE
}
return personDTO;
}
調用populatePersonDTO:
List<String> ids= Arrays.asList("1", "2", "3");
List<String> names= Arrays.asList("name1", "name2", "name3");
populatePersonDTO(ids, names);
什麼是空指針異常的完整堆棧跟蹤? –
發佈的代碼必須與您正在運行的代碼不同(或者問題不在您發佈的代碼中)。我試圖按照原樣複製你的'PersonDTO',並將'populatePersonDTO'作爲同一類的靜態方法添加。當我使用與你發佈的相同片段的主叫方時,一切正常。 – Eran