私は(擬似コード)を持っている。このような何か:ByteBuddy:どのように揮発性のフィールドにメソッドの代表団/転送を行うための
final Class<OUT> newClass = (Class<OUT>) new ByteBuddy()
.subclass(Object.class)
.name(newName)
.implement(SomeInterface.class, SomeOtherInterface.class)
.method(ElementMatchers.isMethod())
.intercept(
ExceptionMethod.throwing(UnsupportedOperationException.class,
"calling this method is not supported"))
// in fact I am matching for more than a single method here
.method(ElementMatchers.named("getUuid"))
.intercept(
MethodDelegation.toInstanceField(SomeOtherInterface.class, "delegate"))
.make()
.load(aBusinessEntityClass.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER)
.getLoaded();
私の現在の問題がある:私は揮発性であることを私のデリゲートフィールドを必要とします。それをどうすれば実現できますか?
あなたの提案された解決策は、残念なことに、最も簡単です。私はAPIを将来のバージョンでより柔軟にするよう努めていきます:https://github.com/raphw/byte-buddy/issues/202 –
@RafaelWinterhalter:あなたのコメントをお寄せいただきありがとうございます。 –