有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

添加get-NullPointerException时的Java对象(布尔值,整数)

当我试图重置一个标记为的列表时,我得到一个空指针异常

问题一定是因为我从来没说过B和C是什么。(布尔B,整数C)我不知道怎么做

以下是我代码的一部分:

Marked[] marked;


//Create list marked!
public class Marked<B,C>{
    public B bool;
    public C comp;
}

public Graph(int N)
{

    //Fill marked with false and 0
    marked = new Marked[N];
    for(int i=0;i<N;i++){

        marked[i].bool = false;
        marked[i].comp=0;
    }

共 (2) 个答案

  1. # 1 楼答案

    语句marked = new Marked[N];使用N元素创建一个新的Marked对象数组,但不初始化它们。这个数组中的每个元素都是null。 您需要通过调用构造函数手动初始化它们

    因此,for循环应该如下所示:

    for(int i=0;i<N;i++) {
        marked[i] = new Marked();
        marked[i].bool = false;
        marked[i].comp=0;
    }
    
  2. # 2 楼答案

    创建Marked数组实际上不会初始化数组中的元素:

    marked = new Marked[N];
    for(int i = 0; i < N; i++) {
        marked[i] = new Marked<Boolean, Integer>();
        marked[i].bool = false;
        marked[i].comp = 0;
    }