【发布时间】:2013-02-15 03:24:07
【问题描述】:
我的 Java 代码出现运行时错误,我正在尝试了解其背后的原因。双星号之间的两个静态访问修饰符是有问题的项目。代码在有或没有这些修饰符的情况下编译(当然删除了星号)。但是在运行时,它只有在存在修饰符时才会运行而不会出错。为什么是这样?当静态修饰符不存在时在运行时生成的错误粘贴在代码下方。非常感谢您的帮助!
代码如下:
public class Blue {
public int[][] multiArray(int x, int y){
int[][] myArray = new int[x][y];
return myArray;
}
static Blue blueObject = new Blue();
public **static** int[][] one = blueObject.multiArray(3,3);
public **static** int[][] two = blueObject.multiArray(3,3);
public static void main(String[] args){
System.out.println("Hello world!");
}
}
运行时产生的错误没有静态访问修饰符:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at Blue.<init>(Blue.java:13)
at Blue.<clinit>(Blue.java:11)
【问题讨论】:
-
为我工作。在这里查看ideone.com/eyOn0x
标签: java nullpointerexception access-modifiers