这个Java代码有什么问题?为什么我不能放入HashMap?

TIM*_*MEX -4 java hashmap

class{
    public HashMap<String, String> eachperson;  

    apple(){
        this.eachperson.put("thekey","thevalue");
    }
}
Run Code Online (Sandbox Code Playgroud)

(请原谅班级和职能面前的公众/私人.我只是想知道我是否正确地使用哈希地图.)

有关真实代码,请参阅以下内容:

class ParsedDataSet{
    public HashMap<String, String> eachperson;      
    public List<HashMap<String,String>> peoplelist = new ArrayList<HashMap<String,String>>();
}

class ListprofileHandler extends DefaultHandler{
    private boolean in_results = true;
    private boolean in_item = false;
    private boolean in_first_name = false;
    private boolean in_last_name = false;
    private boolean in_picture_url = false;
    private boolean in_enditem_dummy = false;
    private ParsedDataSet dset = new ParsedDataSet();
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        if(localName.equals("results")){
            this.in_results = true;
        }else if(localName.equals("item")){
            this.in_item = true;
        }else if(localName.equals("first_name")){
            this.in_first_name = true;
        }else if(localName.equals("last_name")){
            this.in_last_name = true;
        }else if(localName.equals("picture_url")){
            this.in_picture_url = true;
        }else if(localName.equals("enditem_dummy")){
            this.in_enditem_dummy = true;
        }
    }
    public void endElement(String uri, String localName, String qName)throws SAXException {
        if(localName.equals("results")){
            this.in_results = false;
        }else if(localName.equals("item")){
            this.in_item = false;
        }else if(localName.equals("first_name")){
            this.in_first_name = false;
        }else if(localName.equals("last_name")){
            this.in_last_name = false;
        }else if(localName.equals("picture_url")){
            this.in_picture_url = false;
        }else if(localName.equals("enditem_dummy")){
            this.in_enditem_dummy = false;
        }
    }           
    public void characters(char ch[], int start, int length) throws SAXException {
        if(this.in_first_name){
            dset.eachperson.put("first_name", new String(ch, start, length));
        }
        if(this.in_enditem_dummy){
            dset.peoplelist.add(dset.eachperson);
            dset.eachperson = new HashMap<String,String>();  //Reached a new item. So reset the temporary hashmap.
        }

    }       

    public ParsedDataSet getParsedListData(){
        return this.dset;
    }   
}
Run Code Online (Sandbox Code Playgroud)

akf*_*akf 5

您收到的具体错误会有所帮助.但是,我没有看到您HashMap在第一次添加时初始化的位置.你声明它没有赋值,然后你尝试在if(this.in_first_name)没有赋值的情况下使用它.