class MethodKey {
    private final String name;
    private final Class<?> clazz;

    private MethodKey(final String name, final Class<?> clazz) {
      this.name = name;
      this.clazz = clazz;
    }

    @Override
    public boolean equals(final Object o) {<FILL_FUNCTION_BODY>}

    @Override
    public int hashCode() {
      return Objects.hash(name, clazz);
    }
  }

      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      final MethodKey methodKey = (MethodKey) o;
      return Objects.equals(name, methodKey.name) && Objects.equals(clazz, methodKey.clazz);
    
<no_super_class>