此代码引发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
我的问题是应该如何编译
答案 0 :(得分:2)
这将编译为Java代码
public class Test {
static int[] i;
public static void main(String[] args) {
main();
}
public static void main() {
i[1] = 5;
}
}
如果编译并运行此代码,则会看到它引发NullPOinterException,因为没有任何东西正在创建要存储在i
中的int数组。您需要使用int[]
创建(至少)维度为2的newarray
对象,以使此代码正常工作。