@Contract(value = "null, _ -> param2; !null, _ -> param1", pure = true)
  public static @NotNull <T> T notNull(@Nullable T value, @NotNull T defaultValue) {
    return value == null ? defaultValue : value;
  }
@Contract(value = "null, _ -> param2; !null, _ -> param1", pure = true)
  public static @NotNull <T> T notNull(@Nullable T value, @NotNull T defaultValue)