【问题标题】:Compiler keeps saying Array is Null (Android Studio)编译器一直说 Array is Null (Android Studio)
【发布时间】:2017-04-25 00:30:05
【问题描述】:

我已经声明了一个全局数组,它是在一个方法中初始化的。问题是,我需要使用数组的长度将它作为另一个方法的参数传递,但是当我这样做时,我收到一条消息说数组为空。我理解为什么它为空,但我不确定解决方案可能是什么?

代码示例:

Public class Example A{
 int element;   
int [] NumArray;

element = NumArray.length -1


}

public Method(){
NumArray = new int [length]
}

错误出现在以下行:element = NumArray.Length -1

就像我说的,我明白为什么它为空,但我不知道如何解决它,因为由于我的代码结构,数组的初始化必须发生在方法中。

有什么方法可以从方法中获取数组的长度并在主方法中返回?

【问题讨论】:

  • 它给出了错误,因为你没有在数组中放置任何值
  • 对不起,我应该提到它填充了值,我已经编写了打印语句来验证它确实包含我初始化它的数据
  • 顺便说一句:阅读 Java 命名约定
  • 编译器是对的!
  • 嗯,这段代码有点奇怪:Example A 应该会导致语法错误,因为类名不能包含空格,Method() 不包含在任何classMethod() 中不是方法,因为它没有声明返回类型(它可能是class Method 中的构造函数),....

标签: java android arrays


【解决方案1】:

问题就在这里:

int [] NumArray;
element = NumArray.length -1

详情: 您声明了 NumArray 但在调用构造函数之前从未初始化它(这是 100% 好的),但下一行您试图获取未初始化数组的 NumArray.length,这就是原因.. .

解决方案: 将此行放在构造函数中,它属于它

element = NumArray.length -1;

喜欢

public Method(){
    NumArray = new int [length]
    element = NumArray.length -1;
}

【讨论】:

  • 啊,我明白了。太感谢了!但这不仅会返回索引号而不是该数组中的实际值吗?你知道我可以返回那个值吗?
  • nop...变量 element 的值也可以被其他人访问...我希望这是您的问题...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多