code: @NotNull
      public static <T> Optional<T> ofNullable(@Nullable T value) {
          return value == null ? Optional.<T>empty() : of(value);
      }
docs: Returns an {@code Optional} with the specified value, or empty {@code Optional} if value is null.
  
  @param <T> the type of value
  @param value  the value which can be null
  @return an {@code Optional}
  @see #of(java.lang.Object)