我已经声明了一个全局数组,它是在一个方法中初始化的。问题是,我需要使用数组的长度作为另一个方法的参数传递它,但是当我这样做时,我得到一条消息说数组为空。我理解为什么它是null,但我不确定解决方案是什么?
代码示例:
Public class Example A{
int element;
int [] NumArray;
element = NumArray.length -1
}
public Method(){
NumArray = new int [length]
}
错误出现在以下行:element = NumArray.Length -1
就像我说的,我理解为什么它是null,但我不知道如何解决它,因为由于我的代码结构,数组的初始化必须在方法中出现。
有什么方法可以从方法中获取数组的长度并在main方法中返回它?
答案 0 :(得分:3)
问题在于:
int [] NumArray;
element = NumArray.length -1
<强>详细信息:强>
你声明 NumArray 但是在调用构造函数之前永远不会初始化它(这是100%正常)但是下一行你试图获得非初始化数组的NumArray.length
,这就是原因...
<强>解决方案:强> 将此行放在构造函数中,它属于它
element = NumArray.length -1;
像
public Method(){
NumArray = new int [length]
element = NumArray.length -1;
}