1

Byte Buddy サイトから次のサンプル コードを取得し、Eclipse に貼り付けました。

Class<?> type = new ByteBuddy()
      .subclass(Object.class)
      .make()
      .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
      .getLoaded();

getClass()構文チェッカーによってエラーが発生し、次のメッセージが表示されます。

タイプ Object から非静的メソッド getClass() への静的参照を作成できません。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

2

このコードは静的メソッドで指定されています-あなたはそれを含めませんでしたが、「静的参照を作成できません」はあきらめです。

コードをインスタンス メソッドに移動し、そこから呼び出します。現在メソッドからこれを行っている場合はmain、次のように変更します。

public class ExampleClass {
    public static void main(String[] args) {
        // this method is static - see the key word in the signature
        new ExampleClass().execute();
    }

    public void execute() {
        // this is an instance method
        Class<?> type = new ByteBuddy()
                              .subclass(Object.class)
                              .make()
                              .load(getClass().getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
                              .getLoaded();
    }
}

または、クラスの取得方法をgetClass()静的参照に変更することもできますExampleClass.class

于 2015-07-31T11:58:33.173 に答える