1

私はバイトコードでこれをやろうとしています:

if("asd"=="asd"){}

しかし、次のエラーが発生します。

Exception in thread "main" java.lang.VerifyError: (class: Main, method: main signature: ([LJava/lang/String:)V) Expecting to find integer on stack
    at java.lang.Class.getDeclareMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.class.getMethod0(Unknown Source)
    at java.lang.class.getMethod(Unknown Source)
    at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

何か案は?

4

1 に答える 1

3

IF_ICMPEQ は整数比較です (これが ICMP の意味です) 参照を IF_ACMPEQ と比較したい

ところで、値を保存してからロードする必要はありません。スタック上の値を使用するだけです。

于 2013-06-12T15:00:56.630 に答える