private static @NotNull MethodHandle find(String name, Class<?> returnType, Class<?>... params) throws Exception {
    MethodHandles.Lookup publicLookup = MethodHandles.publicLookup();
    Object unsafe = ReflectionUtil.getUnsafe();
    return publicLookup
      .findVirtual(unsafe.getClass(), name, MethodType.methodType(returnType, params))
      .bindTo(unsafe);
  }
private static @NotNull MethodHandle find(String name, Class<?> returnType, Class<?>... params)