0

嘿,程序中的名称是葡萄牙语,但我认为这是可以理解的,如果您有任何疑问,请询问,我会翻译。

所以我得到了NullPointerException这些。数组 Vector_Canais 在构造函数中初始化:

public Box(int capacidade) {
        Time a = new Time();
        Vector_Canais = new Canal[DEFAULT_SIZE];
    }

public static void novoCanal() {
        Scanner in = new Scanner(System.in);

        Cnl = in.nextLine();
        Vector_Canais[i] = new Canal(Cnl);      
        i++;
    }

    public static String listaCanais(int i) {
        return (Vector_Canais[i].getCanal());
    }

public static void listaCanais() {
        for (int a = 0; a < 100; a++) {
            if (Box.listaCanais(a) != null) {
                System.out.println(Box.listaCanais(a));
            }
        }

i 初始化为 0。有什么想法吗?

4

2 回答 2

3

很可能你还没有初始化数组Vector_Canais或者你还没有初始化它的所有成员(例如,novoCanal之前没有被调用过 100 次)。请记住,创建一个大小为 100(一个类)的数组意味着创建一个包含 100null个插槽的数组,而不是 100 个对象。在您为每个人调用构造函数之前,他们可能会抛出这个。

于 2012-12-13T12:26:36.027 回答
1

你还没有显示在哪里Vector_Canais初始化 - 我猜你没有初始化它。

试试这个:

static private Vector_Canais Canal[] = new Canal[100]; // for example
于 2012-12-13T12:23:00.720 回答