这段代码抛出java.lang.NullPointerException。我正试图将一些代码编译到jvm,这就是我的编译器输出的
.class public test
.super java/lang/Object
.field static i [I
.method public static main([Ljava/lang/String;)V
invokestatic test/main()V
return
.limit locals 1
.limit stack 20
.end method
.method public static main()V
.limit locals 8
getstatic test/i [I
ldc 1
ldc 5
iastore
return
.limit stack 20
.end method
然而,它不起作用,我可以弄清楚错误是从哪里来的(没有给出行号。(
我打赌它没有将全局数组的值正确存储在行中
getstatic test/i [I
ldc 1
ldc 5
iastore
我的问题是这个应该如何编译
这将编译成Java代码
public class Test {
static int[] i;
public static void main(String[] args) {
main();
}
public static void main() {
i[1] = 5;
}
}
如果您编译并运行它,您会看到它抛出一个NullPOinterException,因为没有任何东西创建要存储在i
中的int数组。您需要使用newarray
创建一个维度为2(至少(的int[]
对象,以使此代码正常工作。