无法在java中添加两个列表的内容

时间:2014-07-18 09:47:27

标签: java arraylist

public class runnnn {

    static List abc= new ArrayList();
    static List def = new ArrayList();
    static List ghi = new ArrayList();
    public static void main(String[] args) {
        Form pForm = null;
        Form pForm1 = null;
        Form pForm2 = null;
        Form pForm3 = null;
        Form pForm4 = null;
        Form pForm5 = null;
        int i;
        int mn = 0;;
        for(i=0;i<5;i++)
        {
            pForm = new Form();
            String asd = "asdasd"+ i;
            pForm.setPhase(asd);
            pForm.setCount(i);
            abc.add(pForm);
        }

        for(i=0;i<3;i++)
        {
            pForm3 = new Form();
            String asd = "asdasd"+ i;
            pForm.setPhase(asd);
            pForm.setCount(i);
            def.add(pForm3);
        }

        for(int j=0;j<abc.size();j++){
            pForm1=null;
            pForm1=(Form)abc.get(j);
            pForm4 = null;
            mn=pForm1.getCount();
            for(int k=0;k<def.size();k++){
                pForm2=null;
                pForm2=(Form)def.get(k);
                if(pForm1.getPhase() == pForm2.getPhase()){
                    mn = mn + pForm2.getCount();
                }
            }
            pForm4.setPhase(pForm.getPhase());
            pForm4.setCount(mn);
            ghi.add(pForm4);
        }


        for(int j=0;j<ghi.size();j++){
            pForm5=null;
            pForm5=(Form)ghi.get(j);
            System.out.println(pForm5.getPhase()+"  "+pForm5.getCount());
        }    
    }

}

这是我得到的错误

pForm4.setPhase(pForm.getPhase());

空指针访问:变量pForm4在此位置只能为空

我正在尝试将一个列表的计数添加到另一个列表,第二个列表是第一个列表的子集

1 个答案:

答案 0 :(得分:3)

你从不调用
pForm4 = new Form();

从你的代码:

 pForm4 = null;
    mn=pForm1.getCount();
    for(int k=0;k<def.size();k++){
        pForm2=null;
        pForm2=(Form)def.get(k);
        if(pForm1.getPhase() == pForm2.getPhase()){
            mn = mn + pForm2.getCount();
        }
    }
    pForm4.setPhase(pForm.getPhase());

您将pForm4设置为null并尝试调用方法?那不行。