1
私は、実行時にByteBuddyAgent
を使ってデフォルトのメソッドに注釈を付そうとしています。既定の実装を維持するために、私はリベース戦略を使用していますが、元のメソッドへの呼び出しで新しいメソッドをインターセプトする方法を理解することはできません。ByteBuddyでインターフェースのデフォルトメソッドをリベースするには?
私はMethodCall.invokeSuper()
とMethodCall.invokeSelf().onDefault()
を使ってみましたが、どちらも私にIllegalStateException
を与えました。
new ByteBuddy()
.subclass(MyInterface.class)
.method(isDeclaredBy(typeDescription).and(isDefaultMethod()))
.intercept(MethodCall.invokeSelf().onDefault())
.annotateMethod(AnnotationDescription.Builder
.ofType(MyAnnotation.class).build())
.make()
...