public static @NotNull <T> T createInstance(@NotNull Constructor<T> constructor, Object @NotNull ... args) {
    try {
      return constructor.newInstance(args);
    }
    catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
public static @NotNull <T> T createInstance(@NotNull Constructor<T> constructor, Object @NotNull ... args)