1

JVMをターゲットマシンとしてJava for Javaでコンパイラを作成しており、関数呼び出しを機能させようとしています。しかし、コンパイラによって作成されたクラス ファイルを実行しようとすると、次のエラーが発生します: "Exception in thread "main" 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);    
     }
  }

作成されたクラス ファイル自体:

テストクラス

(ダウンロードしようとすると、Googleはウイルスが含まれていると言います。そのため、写真を提供しました

作成されたクラスファイルの:

クラスファイルと javap

そのクラスファイルの何が問題なのかわかりません。

4

1 に答える 1

2

メソッドは、命令ではなく命令でtest終了します。前者を使用してメソッドから int を返すことはできません。後者を使用する必要があります。returnireturn

于 2013-06-17T21:49:16.173 に答える