Class Maybe<T>

  • Type Parameters:
    T - The type of Maybe

    public class Maybe<T>
    extends java.lang.Object
    Similar to a Java 8 optional, but this version is different in the following ways:
    • Nulls are accepted in constructor (no need for of() vs. ofNullable())
    • Value is mutable (useful to get around lambda & final variables restriction)
    • Non-final and can be subclassed
    • toString() returns the .toString() of the value rather than Optional[value]
    Author:
    jjlauer
    • Constructor Summary

      Constructors 
      Constructor Description
      Maybe​(T value)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static <T> Maybe<T> empty()  
      boolean equals​(java.lang.Object obj)  
      Maybe<T> filter​(java.util.function.Predicate<? super T> predicate)  
      <U> Maybe<U> flatMap​(java.util.function.Function<? super T,​Maybe<U>> mapper)  
      T get()  
      int hashCode()
      Returns the hash code of the value, if present, otherwise 0 (zero) if no value is present.
      Maybe<T> ifAbsent​(java.lang.Runnable runnable)  
      Maybe<T> ifPresent​(java.util.function.Consumer<? super T> consumer)  
      boolean isAbsent()  
      boolean isPresent()  
      <U> Maybe<U> jvmFlatMap​(java.util.function.Function<? super T,​java.util.Optional<U>> mapper)  
      java.util.Optional<T> jvmOptional()  
      <U> java.util.stream.Stream<U> jvmStream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)  
      <U> Maybe<U> map​(java.util.function.Function<? super T,​? extends U> mapper)  
      <U> java.util.stream.Stream<U> mapStream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)
      Deprecated.
      boolean match​(java.util.function.Predicate<? super T> predicate)
      Matches if value is PRESENT and passes the predicate.
      static <T> Maybe<T> maybe​(java.util.Optional<T> valueOptional)  
      static <T> Maybe<T> maybe​(T value)  
      static <T> Maybe<T> of​(java.util.Optional<T> valueOptional)  
      static <T> Maybe<T> of​(T value)  
      <U> Maybe<U> optMap​(java.util.function.Function<? super T,​java.util.Optional<U>> mapper)
      Deprecated.
      T orElse​(T defaultValue)  
      T orGet​(java.util.function.Supplier<T> defaultSupplier)  
      T orNull()  
      <X extends java.lang.Throwable>
      T
      orThrow​(java.util.function.Supplier<? extends X> exceptionSupplier)  
      void set​(T value)  
      <U> MaybeStream<U> stream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)  
      java.util.Optional<T> toOptional()
      Deprecated.
      java.lang.String toString()  
      <U> Maybe<U> typed​(java.lang.Class<? super U> type)  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • Maybe

        public Maybe​(T value)
    • Method Detail

      • get

        public T get()
      • set

        public void set​(T value)
      • orNull

        public T orNull()
      • orElse

        public T orElse​(T defaultValue)
      • orGet

        public T orGet​(java.util.function.Supplier<T> defaultSupplier)
      • orThrow

        public <X extends java.lang.Throwable> T orThrow​(java.util.function.Supplier<? extends X> exceptionSupplier)
                                                  throws X extends java.lang.Throwable
        Throws:
        X extends java.lang.Throwable
      • isPresent

        public boolean isPresent()
      • isAbsent

        public boolean isAbsent()
      • match

        public boolean match​(java.util.function.Predicate<? super T> predicate)
        Matches if value is PRESENT and passes the predicate.
        Parameters:
        predicate -
        Returns:
      • ifPresent

        public Maybe<T> ifPresent​(java.util.function.Consumer<? super T> consumer)
      • ifAbsent

        public Maybe<T> ifAbsent​(java.lang.Runnable runnable)
      • typed

        public <U> Maybe<U> typed​(java.lang.Class<? super U> type)
      • filter

        public Maybe<T> filter​(java.util.function.Predicate<? super T> predicate)
      • map

        public <U> Maybe<U> map​(java.util.function.Function<? super T,​? extends U> mapper)
      • jvmStream

        public <U> java.util.stream.Stream<U> jvmStream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)
      • mapStream

        @Deprecated
        public <U> java.util.stream.Stream<U> mapStream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)
        Deprecated.
      • stream

        public <U> MaybeStream<U> stream​(java.util.function.Function<? super T,​? extends java.lang.Iterable<U>> mapper)
      • flatMap

        public <U> Maybe<U> flatMap​(java.util.function.Function<? super T,​Maybe<U>> mapper)
      • jvmFlatMap

        public <U> Maybe<U> jvmFlatMap​(java.util.function.Function<? super T,​java.util.Optional<U>> mapper)
      • optMap

        @Deprecated
        public <U> Maybe<U> optMap​(java.util.function.Function<? super T,​java.util.Optional<U>> mapper)
        Deprecated.
      • jvmOptional

        public java.util.Optional<T> jvmOptional()
      • toOptional

        @Deprecated
        public java.util.Optional<T> toOptional()
        Deprecated.
      • empty

        public static <T> Maybe<T> empty()
      • of

        public static <T> Maybe<T> of​(T value)
      • maybe

        public static <T> Maybe<T> maybe​(T value)
      • of

        public static <T> Maybe<T> of​(java.util.Optional<T> valueOptional)
      • maybe

        public static <T> Maybe<T> maybe​(java.util.Optional<T> valueOptional)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Returns the hash code of the value, if present, otherwise 0 (zero) if no value is present.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hash code value of the present value or 0 if no value is present