code: public static <T, S extends T> Optional<T> of(S value) {
      if (value == null) {
        throw new IllegalArgumentException("Optional does not support NULL, use Optional.empty() instead.");
      }
  
      return new Optional<T>(value);
    }
docs: Create a new Optional containing value.
  
  @param value The value contained.
  @return The value wrapped in an Optional.