空数组指针

时间:2018-11-03 02:28:48

标签: java arrays file object pointers

我正在从文件中读取一个字符串,并将该字符串和不同的元素解析为一个数组,以备后用。

一切正常,但是当在WHILE循环中打印元素时,它工作正常,但是,当我尝试从while循环中打印数组时,我得到了一个数组Null指针。 这是代码:

public PointsEX2(){
        String temp = new String();
        String[] parse =null;

        File file = new File("C:/Users/DjKidoo/Desktop/IA/mof.txt");
        Scanner sc = null;

        for(int t=0;t<pt_tab1.length;t++){
            pt_tab1[t]=new PointEX2();
        }



        try {
            sc = new Scanner(file);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        int j=0;

        while ((sc.hasNextLine())&& (j<= pt_tab1.length)) {
            temp = sc.next();
            parse = temp.split(",",0);
            pt_tab1[j]= new 
  PointEX2(Float.parseFloat(parse[0]),Float.parseFloat(parse[1]),Float.parseFloat(parse[2]),Float.parseFloat(parse[3]),parse[4]);

 System.out.println(toString(pt_tab1[j])); // perfectly works

        }


        for (int i=0;i<pt_tab1.length;i++)
        System.out.println(pt_tab1[i].x); // Array Null Pointer
}

1 个答案:

答案 0 :(得分:1)

您从不会在while循环内递增j,因此它保持0,因此您将一个新的PointEX2连续分配给 相同数组项 pt_tab1[0]。所有其他都为空。

pt_tab1甚至不应该是数组,而应该是ArrayList<PointEX2>,那么您就不会遇到这个问题。