public class BN{ public int nNodes  =0;
 int[] nValuesPerNode;
 ArrayList[] parents;
 public static ArrayList[] condPrNode;这时开始部分,问题就出在变量condPrNode上。
在方法1种初始化condPrNode: condPrNode = new ArrayList[nNodes]; nNodes是个int。
然后方法1调用方法2。2中出现语句condPrNode[node].add(tmp2.get(i));显示这行NullPointerException错误。甚至我把它暂时换成condPrNode.add(9);或者condPrNode.add(Float.valueOf(tmp[p]))仍然是这个错误。所以我猜测可能问题出在condPrNode上面根本无法写入值。。请高手们帮忙看一下。感觉很直接。但是就是不知道怎么错了。

解决方案 »

  1.   

    你给数组申请了空间,却没给数组成员初始化
    ArrayList al[]  = new ArrayList[10]
    al[0] = new ArrayList();//数组成员初始化
    al[0].add(...)
      

  2.   

    变量在使用之间必须先要初始化的,如果不初始化就会抛出NullPointerException(空指针异常)。因为java中对象的值都是放在堆中的。
      

  3.   

    public static ArrayList[] condPrNode;
    static 成员必须初始化, 直接初始化,或者在构造函数中初始化
      

  4.   

    谢谢大家。。找到问题。。就是,我没想到array中的每一个元素都要初始化