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()
...