Я использую CGLIB для создания прокси-объекта некоторого класса, и мне нужно, чтобы связать некоторое логотее поле для прокси-объекта, как показано нижеКак создать прокси с настраиваемым полем с помощью cglib?
String customFieldName = "myCustomField";
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(targetClass);
// What can I do to add custom field to the proxy class ?
enhancer.setCallback(new MethodInterceptor() {
@Override
public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {
// I'd access the custom field value here
Field field = obj.getClass().getField(customFieldName);
Object customFieldValue = field.get(obj);
// do something
return proxy.invokeSuper(obj, args);
}
});
Конечно альтернатива использует карту, чтобы связать значение объект происхождения, но я не очень люблю это делать.
У кого-нибудь есть идеи?