public <T> T createSubclassingProxy(ClassMetadata<T> proxifiedClass, Class<?>[] constructorTypes, Object[] constructorArguments)
{
T instance = createAdvisedSubclassInstance(proxifiedClass, constructorTypes, constructorArguments);
MethodHandler interceptorMethodHandler = createSubclassingMethodHandler(instance, proxifiedClass);
((ProxyObject)instance).setHandler(new CompositeHandler(Arrays.asList(new MethodHandler[]{interceptorMethodHandler})));
return instance;
}