1

我正在为 Java 编写一个 Java 编译器,以 JVM 作为目标机器,我试图让函数调用正常工作。但是当我尝试运行由我的编译器创建的类文件时,我收到了这个错误:“线程中的异常”java.lang.VerifyError: (class: Test, method: test signature: (I)I) Wrong函数中的返回类型”。

这里是示例代码:

 public class Test
 {
     public static int test(int a)
     {
        return a;
     }

     public static void main(String[] args)
     {
        int b;
        b = test(b);    
     }
  }

创建的类文件本身:

测试类

(如果你尝试下载它,谷歌说它包含病毒。所以我提供了一张图片

创建的类文件:

类文件和 javap

我不知道那个类文件有什么问题。

4

1 回答 1

2

方法testreturn指令而不是ireturn指令结束。您不能使用前者从方法中返回一个 int ;你必须使用后者。

于 2013-06-17T21:49:16.173 回答