フィーチャージオメトリと属性を含むオブジェクトを作成します。
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());
そして、例外を取得します。
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をどのように理解するかは、空のオブジェクトを使用しようとすることを意味しますか?どうしたの?
追伸申し訳ありませんが、私の英語は特にタイトルでひどいことがあります。
アップデート
さて、これを追加します:this.columnMap = new HashMap<Column, String>();
FEatureクラスコンストラクター。
しかし今、私はやろうとしています:
System.out.println(feature.getAttribute("id")+" "+feature.getAttribute("kadnumm"));
および出力:
null null
何が間違っている可能性がありますか?