使用 jasmin 字节码汇编程序创建的代码中的 NullPointerException
NullPointerException in code created with jasmin bytecode assembler
此代码抛出 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,因为没有创建一个 int 数组来存储在 i
中。您需要使用 newarray
创建维度 2(至少)的 int[]
对象才能使此代码正常工作。
此代码抛出 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,因为没有创建一个 int 数组来存储在 i
中。您需要使用 newarray
创建维度 2(至少)的 int[]
对象才能使此代码正常工作。