gpt4 book ai didi

java - 数组作为实例变量作为参数传递

转载 作者:行者123 更新时间:2023-12-01 07:36:12 25 4
gpt4 key购买 nike

我有一个类,其中一个数组作为实例变量/字段,该类从另一个类传递到该类中的第一个方法。我的印象是我也应该能够从另一种方法访问它,而无需将其传递给该方法,但是当我尝试时,我得到了一个 NPE。

代码如下:

public class PLoop {

// instance variable
public Memory[] memList;

// method 1
public void memPass(Memory[] memLocList) {

memList = memLocList;
System.out.println(memList.length);
}

// method 2
public void accessArray() {

System.out.println(memList.length);
}
}

当调用第一个方法时,我会在控制台上打印一个整数,表示数组的长度,但是当调用第二个方法时,它是 NPE,表明不是同一个数组。

第二种方法是通过单击 GUI 上的按钮来调用的。与此按钮关联的方法仅具有如下调用:

PLoop.accessArray();

谁能从中看出我做错了什么?

-编辑-对这些方法的调用来自两个不同的类,每个类都声明一个 PLoop 实例:

proc = new PLoop();

最佳答案

我强烈怀疑您调用 memPass 的实例与您稍后调用 accessArray 的实例不同。

如果您使用相同的实例,那应该绝对没问题。 (特别是,它将存储参数的,因此 memList 不会在不为 null 后变为 null,只是由于其他地方的更改。)

关于java - 数组作为实例变量作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com