-3

マップを塗りつぶそうとしているときに Java が NullPointerException を返す理由がわかりません。

public class ResultsClass extends Class2 {

    private Map<String,Object> result_map;

    public ResultsClass(Object o){
        this.results = o;
        System.out.println(this.results.somemethod().isEmpty());
        fill_results();
    }

    private void fill_results(){
        System.out.println(this.results.somemethod.isEmpty());
        result_map.put("ID",this.results.somemethod()); 
    }

    public static void main(String[] args) throws Exception{
        ResultsClass results = new ResultsClass(Object);
    }
}

print ステートメントは両方とも false です。

地図の使い方が間違っているだけだと思います。キー値を .put に入れました。これを <"string",Object> として宣言することで、マップに入れる値を組み合わせて一致させることができると思いました。私がしても:

result_map.put("id","value")

同じ例外が発生します。異なるキー値タイプを持つことができる別のタイプのマップを使用する必要がありますか?

編集:

うわー、あなたたちは厳しいです。マップをこのようなクラスとして宣言する必要があることを知りませんでした。私は新しく、それは私の頭をよぎりませんでした。でも素早い回答ありがとうございます!

4

2 に答える 2

4

マップをインスタンス化 (「作成」) する必要があります。例:

private Map<String, Object> result_map = new HashMap<String, Object> ();

そうするまで、result_mapnull (有効なオブジェクトを参照していない) であり、使用できません。

于 2013-01-10T22:56:39.937 に答える
1

あなたはマップを作成しませんでした。したがって、null であるため、result_map を使用できません。

于 2013-01-10T23:00:34.903 に答える