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