使用jasmin字节码汇编程序创建的代码中出现NullPointerException



这段代码抛出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[]对象,以使此代码正常工作。

相关内容

  • 没有找到相关文章

最新更新