}
public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
if (method.equals(ReflectionUtils.equals)) {
final Object arg = args[0];
if (new StandardProxyFactory().isProxyClass(arg.getClass())
&& ((InvokerReference)arg).getInvoker() instanceof DispatchingInvoker) {
final DispatchingInvoker invoker = (DispatchingInvoker)((InvokerReference)arg).getInvoker();
if (new HashSet(types).equals(new HashSet(invoker.types))) {
boolean isEqual = true;
for (int i = 0; isEqual && i < types.size(); ++i) {