List集合對象引用問題

一、List的值爲List:

     在添加List到List中時,要注意以下問題:

        Module m ;
        Case c ;
        List caseList = null ;                                  //List元素下的List屬性
        List mList = new ArrayList() ;                   //List對象
        
        JSONObject json = JSONObject.fromObject(moduleCase);
        
        logger.error("" + json.get("test")) ;
        JSONArray testJarr = (JSONArray)json.get("test");
        logger.error("" + testJarr.size()) ;
        for(int i = 0 ; i < testJarr.size() ; i ++){
            JSONObject jobj = (JSONObject)testJarr.get(i) ;            
            m = new Module() ;
            m.setId(String.valueOf(i));
            m.setModuleName(String.valueOf(jobj.get("module")));
            
            JSONArray caseJarr = (JSONArray)jobj.get("caseList") ;

           // caseList.clear() ;                                       //這樣清空是沒有作用的,到最後mList下的所有caseList元素都是最後生成的caseList的值,因此一定要新建一個List對象

            caseList = new ArrayList() ;                    //清空caseList
            for(int j = 0 ; j < caseJarr.size() ; j ++){
                c = new Case() ;
                c.setId(String.valueOf(j));
                c.setCaseName(String.valueOf(caseJarr.get(j)));
                caseList.add(c) ;
                m.setCaseList(caseList);
            }
            mList.add(m) ;
        }

 

評論:此爲對象沒有搞清楚造成的錯誤,對象在被實例化後可以被多處引用;要想得到不同的對象,就必須多次實例化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章