2017-08-01 2 views
0

私はいくつかのrdfデータセットを入力として受け取り、このデータで動作するJavaアプリケーションを持っています。 私はTreeMapを使用しましたが、そのキーはインスタンス名であり、値はTreeSetであり、インスタンスが持つプロパティのリストと私たちに許可するintのリストが含まれています。一方、私のPropertyIsTypedクラスが似ているJavaでTreeSetをTreeMapの値として扱うにはどうすればいいですか?

static TreeMap<String, TreeSet<PropertyIsTyped>> instanceListPropertiesTreeMap = new TreeMap<String, TreeSet<PropertyIsTyped>>(); 

String instancemapKey = s[0]; 
TreeSet<PropertyIsTyped> setOfPropertiesPerInstance = new TreeSet<PropertyIsTyped>(); 
if (instanceListPropertiesTreeMap.get(instancemapKey) == null) { 
    setOfPropertiesPerInstance.add(new PropertyIsTyped(s[1], 1)); 
    instanceListPropertiesTreeMap.put(instancemapKey, setOfPropertiesPerInstance); 
} else if (instanceListPropertiesTreeMap.get(instancemapKey) != null 
     && !setOfPropertiesPerInstance.contains(s[1])) { 
    setOfPropertiesPerInstance = instanceListPropertiesTreeMap.get(instancemapKey); 
    PropertyIsTyped currentListproperties = new PropertyIsTyped(s[1], 1); 
    setOfPropertiesPerInstance.add(currentListproperties); 
} 

public class PropertyIsTyped { 

    public int isTyped; 

    public List<String> PropertySet; 

    public PropertyIsTyped(String properties, int typevalue) { 
     // this.propertyId = id; 
     if (properties != "") 
      PropertySet.add(properties); 
     if (typevalue == 1) { 
      this.isTyped = 1; 
     } else { 
      this.isTyped = 0; 
     } 
    } 

} 

問題:私は私のデータセットを与えた場合、それは私のリストに私の新しいpropetiesを挿入したい、それが私のNullpointerExceptionError

を与えるプロパティセット

ご意見はありますか?

+0

A)あなたの命名はひどいですが...変数はJavaでキャメルケースを行きます>() 'とNPEが消えてしまいます。 – GhostCat

答えて

-2

public List propertySet = null;

if(properties!= "") propertySet.add(properties); `正しくありません!リストは初期化する必要があります!

あなたがリストを初期化する必要があります。

公共リストプロパティセット=新しいArrayListを<>();ちょうど `一覧 プロパティ=新しいのArrayListを<使用して...と、なぜそれがリストであるSET何かを呼び出す -

....

+0

正しい方向に進んでいますが、ソースコードにはさまざまなバグがあります。あなたが何かを追加するたびに新しいプロパティを作成するアイデア...悪い考え。あなたはまだ**初心者の生徒**ですが、他の人に教えてみませんか。 – GhostCat

+0

これは行動を促すものではなく、NPEエラーを排除する方法の単なる例です。 悪いアイデアや良いアイデアは、プログラマがしたいことの実現に依存します。ここでもまた、この仕事は、ああ偉大でひどくパワフルなジェダイ・マスターではありませんでした。 – denAbra

+0

これはQ/Aコミュニティです。あなたの答えは何千人も何千人もの人が時間をかけて読むことができます。したがって、私たちは**回答の質**について気にします**。シンプル - 問題を解決したり、回答を削除したりします。それ以外の場合は削除されます。それは簡単です。もう一度:あなたはそのコードに** 3つの**問題を取り込むことができました。だからあなたが間違っていることを説明している人に不平を言うのではなく、あなたのコードを修正してください。そしてボーナスヒント:** raw **タイプについて読んでください。そうすれば、あなたのコードがどうしてこんなに悪いのか分かります。 – GhostCat

関連する問題