作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个类:Main
和 Sub1
。
anArray
在 Sub1
中声明如下:
public static int[] anArray;
public Sub1 () {
anArray = new int[15];
然后在 Sub1
中,我尝试设置它:
public static void methodOne() {
anArray[0] = 5;
但是当我尝试运行代码时,我得到了一个 NullPointerException
,消息指定:
Sub1.methodOne (Sub1.java:249)
引用这段代码:
anArray[0] = 5;
为什么它不让我改变数组?如果我将其注释掉,错误仍然存在并且只是移动到另一行我试图更改数组索引的值。
最佳答案
anArray
是一个 static
字段,尝试在该类的构造函数中初始化它是没有意义的。如果您希望它是static
,只需在声明时对其进行初始化:
public static int[] anArray = new int[15];
如果您想让 anArray
和 methodOne
成为实例成员,请移除它们的 static
修饰符。
无论哪种方式,我都建议您将变量设为 anArray
private
,这样只有公开公开的方法才能修改其内容和 final
,这样您不要不小心重新分配它。
关于java - 我不断使用公共(public)数组获取 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669443/
安装并修复我的 VS2015 实例后,我仍然无法让智能感知(服务器端)在我的 MVC View 中工作。当我在 session 中第一次打开 .cshtml 文件并找到 Activitylog 文件时
我是一名优秀的程序员,十分优秀!