我正在尝试使用 Jasmin 字节码将数组传递到函数中。它生成了一个正确的类,但当我尝试运行它时出现错误:
java.lang.VerifyError: (类:test4,方法:主签名:([Ljava/lang/String;)V) 寄存器 1 包含错误类型
这里可能存在什么问题? 提前感谢您的帮助!
我的字节码:
.class public input_code
.super java/lang/Object
.method private static func([Ljava/lang/String;)V
.limit stack 99
.limit locals 99
return
.end method
.method public static main([Ljava/lang/String;)V
.limit stack 99
.limit locals 99
ldc 10
anewarray java/lang/String
astore 1
aload 1
ldc 9
ldc "t"
aastore
iload 1
invokestatic input_code/func([Ljava/lang/String;)V
return
.end method
java类:
public class input_code {
private static void func(String[] var0) {
}
public static void main(String[] var0) {
String[] var1 = new String[10];
var1[9] = "t";
func(var1);
}
}
最佳答案
我的错在这里。我的代码生成器有一个错误(在visitExpIdentifier中)
ldc "t"
aastore
iload 1 << should be aload
关于java - 将数组作为参数放入 java 字节码中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61171393/