反對我創建包含幾何要素和屬性對象:NullPointExeption時儘量把變量在Java中
public class Feature {
Feature(String wkt) {
this.wkt = wkt;
}
private HashMap<Column, String> columnMap;
private String wkt;
public String getWKT() {
return wkt;
}
public void addAttribute(Column column, String value) {
columnMap.put(column, value);
}
public String getAttribute(String column) {
return columnMap.get(column) ;
}
public Map<Column, String> getAttributes(){
return columnMap;
}
}
WKT是幾何體。 ColumnMap是對象包含的屬性的HashMap:
public class Column {
private String columnName;
Column(String columnName) {
this.columnName = columnName;
}
public String getName() {
return columnName;
}
}
現在我說:
columnList = new ArrayList<Column>(columns);
......
Feature feature= new Feature(WKT);
for(int p=0;p<columnList.size();p++){
for(int k=0;k<=ViewObject.getMIDInfo(totalObjects).length;k++){
if(p==k){
System.out.println("Column "+columnList.get(p).getName()+" Value "+ ViewObject.getMIDInfo(totalObjects)[k].toString());
//feature.addAttribute(columnList.get(p), ViewObject.getMIDInfo(totalObjects)[k].toString());
}
}
}
並獲得輸出:
Column id Value 22
Column kadnumm Value "66-41-0707001-19"
所以,我怎麼理解columnList
和ViewObject.getMIDInfo(totalObjects)
是不是空的。在此之後我改變:
//feature.addAttribute(columnList.get(p), ViewObject.getMIDInfo(totalObjects)[k].toString());
到:
feature.addAttribute(columnList.get(p), ViewObject.getMIDInfo(totalObjects)[k].toString());
並獲得exeption:
Column id Value 22
java.lang.NullPointerException
at objects.Feature.addAttribute(Feature.java:18)
at objects.MIFParser.findRegion(MIFParser.java:181)
at objects.MIFParser.instanceNextObject(MIFParser.java:66)
at Read.main(Read.java:40)
NullPointerException異常如何我明白意味着我嘗試使用空的對象?怎麼了?
P.s.對不起,我的英語可能會很糟糕,特別是標題。在要素類的構造函數this.columnMap = new HashMap<Column, String>();
:
UPDATE
奧基我添加此。
但現在我試着做:
System.out.println(feature.getAttribute("id")+" "+feature.getAttribute("kadnumm"));
輸出:
null null
什麼可能是錯誤的?
我投票給所有其他答案,CID他們都是一樣的。只是把它放在那裏。 – Bohemian