@Override
        public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
          if ("computeHashCode".equals(method.getName())) {
            return System.identityHashCode(args[0]);
          }
          else if ("equals".equals(method.getName())) {
            return args[0] == args[1];
          }
          throw new UnsupportedOperationException("Unsupported method: " + method.getName());
        }
@Override
        public Object invoke(Object proxy, Method method, Object[] args)