T
- public interface Maybe<T> extends MonadicValue<T>, java.util.function.Supplier<T>, ConvertableFunctor<T>, Filterable<T>, Applicativable<T>, Matchable.ValueAndOptionalMatcher<T>
Modifier and Type | Interface and Description |
---|---|
static class |
Maybe.Just<T> |
static class |
Maybe.Lazy<T> |
static class |
Maybe.Nothing<T> |
Applicativable.Applicatives, Applicativable.SemigroupApplyer<T>
Value.ValueImpl<T>
Matchable.AsMatchable, Matchable.AutoCloseableMatchableIterable<TYPE>, Matchable.CheckValue1<T,R>, Matchable.CheckValue2<T1,T2,R>, Matchable.CheckValue3<T1,T2,T3,R>, Matchable.CheckValue4<T1,T2,T3,T4,R>, Matchable.CheckValue5<T1,T2,T3,T4,T5,R>, Matchable.CheckValueOpt<T,R>, Matchable.CheckValues<T,R>, Matchable.MatchableIterable<TYPE>, Matchable.MatchableObject<TYPE>, Matchable.MatchableOptional<T>, Matchable.MatchSelf<TYPE>, Matchable.MTuple1<T1>, Matchable.MTuple2<T1,T2>, Matchable.MTuple3<T1,T2,T3>, Matchable.MTuple4<T1,T2,T3,T4>, Matchable.MTuple5<T1,T2,T3,T4,T5>, Matchable.MXor<T1,T2>, Matchable.ValueAndOptionalMatcher<T>
Convertable.SupplierToConvertable<T>
Modifier and Type | Method and Description |
---|---|
static <T,R> Maybe<R> |
accumulateJust(CollectionX<Maybe<T>> maybes,
java.util.function.Function<? super T,R> mapper,
Semigroup<R> reducer) |
static <T,R> Maybe<R> |
accumulateJust(CollectionX<Maybe<T>> maybes,
Reducer<R> reducer) |
static <T> Maybe<T> |
accumulateJust(CollectionX<Maybe<T>> maybes,
Semigroup<T> reducer) |
default <U> Maybe<U> |
cast(java.lang.Class<U> type)
Cast all elements in a stream to a given type, possibly throwing a
ClassCastException . |
Maybe<T> |
filter(java.util.function.Predicate<? super T> fn) |
default Maybe<T> |
filterNot(java.util.function.Predicate<? super T> fn) |
<R> Maybe<R> |
flatMap(java.util.function.Function<? super T,? extends Maybe<? extends R>> mapper) |
static <T> Maybe<T> |
fromEvalOf(Eval<T> eval) |
static <T> Maybe<T> |
fromOptional(java.util.Optional<T> opt) |
boolean |
isPresent() |
static <T> Maybe<T> |
just(T value) |
<R> Maybe<R> |
map(java.util.function.Function<? super T,? extends R> mapper) |
static <T> Maybe<T> |
narrow(Maybe<? extends T> broad) |
static <T> Maybe<T> |
none() |
default Maybe<T> |
notNull() |
static <T> Maybe<T> |
of(T value)
Create a new matchable that will match on the fields of the provided Object
|
static <T> Maybe<T> |
ofNullable(T value) |
default <U> Maybe<U> |
ofType(java.lang.Class<U> type)
Keep only those elements in a stream that are of a given type.
|
default <R> Maybe<R> |
patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1,
java.util.function.Supplier<? extends R> otherwise)
Transform the elements of this Stream with a Pattern Matching case and default value
|
default Maybe<T> |
peek(java.util.function.Consumer<? super T> c) |
Maybe<T> |
recover(java.util.function.Supplier<T> value) |
Maybe<T> |
recover(T value) |
static <T> Maybe<ListX<T>> |
sequence(CollectionX<Maybe<T>> maybes) |
default Maybe<T> |
toMaybe() |
default <R> Maybe<R> |
trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Performs a map operation that can call a recursive method without running out of stack space
|
default <T> Maybe<T> |
unit(T unit) |
<R> R |
visit(java.util.function.Function<? super T,? extends R> some,
java.util.function.Supplier<? extends R> none) |
anyM
ap, ap, ap1, ap2, ap3, ap4, ap5
convertTo, convertToAsync, fold, fold, generate, getMatchable, iterate, mapReduce, mkString, newSubscriber, stream, subscribe, test, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFutureStream, toFutureStream, toIor, toLazyImmutable, toListX, toMutable, toPBagX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toTry, toTry, toXor, unapply
foldRight, foldRight, foldRight, foldRightMapToType, join, join, join, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce
from, from, from, from, from, from, from, from, from, from, fromCharSequence, fromIterable, listOfValues, ofDecomposable, otherwise, otherwise, then, then, when, when, when, when, when, when, when, when, when, when, whenGuard, whenTrue, whenValues
fromSupplier, get, iterator, orElse, orElseGet, orElseThrow, toAtomicReference, toCompletableFuture, toCompletableFutureAsync, toCompletableFutureAsync, toFutureW, toList, toOptional, toOptionalAtomicReference, toStream
iterator, toOptional
matches
static final Maybe EMPTY
static <T> Maybe<T> none()
static <T> Maybe<T> fromOptional(java.util.Optional<T> opt)
fromOptional
in interface Matchable<T>
static <T> Maybe<T> just(T value)
static <T> Maybe<T> of(T value)
Matchable
static <T> Maybe<T> ofNullable(T value)
static <T> Maybe<ListX<T>> sequence(CollectionX<Maybe<T>> maybes)
static <T,R> Maybe<R> accumulateJust(CollectionX<Maybe<T>> maybes, Reducer<R> reducer)
static <T,R> Maybe<R> accumulateJust(CollectionX<Maybe<T>> maybes, java.util.function.Function<? super T,R> mapper, Semigroup<R> reducer)
static <T> Maybe<T> accumulateJust(CollectionX<Maybe<T>> maybes, Semigroup<T> reducer)
boolean isPresent()
<R> Maybe<R> flatMap(java.util.function.Function<? super T,? extends Maybe<? extends R>> mapper)
<R> R visit(java.util.function.Function<? super T,? extends R> some, java.util.function.Supplier<? extends R> none)
visit
in interface Convertable<T>
visit
in interface Matchable.MatchableOptional<T>
visit
in interface Matchable.ValueAndOptionalMatcher<T>
Maybe<T> filter(java.util.function.Predicate<? super T> fn)
filter
in interface Filterable<T>
default <U> Maybe<U> ofType(java.lang.Class<U> type)
Filterable
ofType
in interface Filterable<T>
default Maybe<T> filterNot(java.util.function.Predicate<? super T> fn)
filterNot
in interface Filterable<T>
default Maybe<T> notNull()
notNull
in interface Filterable<T>
default <U> Maybe<U> cast(java.lang.Class<U> type)
Functor
ClassCastException
.
// ClassCastException ReactiveSeq.of(1, "a", 2, "b", 3).cast(Integer.class)default <R> Maybe<R> trampoline(java.util.function.Function<? super T,? extends Trampoline<? extends R>> mapper)
Functor
ReactiveSeq.of(10,20,30,40)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
Trampoline<Long> fibonacci(int i){
return fibonacci(i,1,0);
}
Trampoline<Long> fibonacci(int n, long a, long b) {
return n == 0 ? Trampoline.done(b) : Trampoline.more( ()->fibonacci(n-1, a+b, a));
}
55
6765
832040
102334155
ReactiveSeq.of(10_000,200_000,3_000_000,40_000_000)
.trampoline(i-> fibonacci(i))
.forEach(System.out::println);
completes successfully
trampoline
in interface Functor<T>
default <R> Maybe<R> patternMatch(java.util.function.Function<Matchable.CheckValues<T,R>,Matchable.CheckValues<T,R>> case1, java.util.function.Supplier<? extends R> otherwise)
Functor
List<String> result = CollectionX.of(1,2,3,4)
.patternMatch(
c->c.valuesWhere(i->"even", (Integer i)->i%2==0 )
)
// CollectionX["odd","even","odd","even"]
patternMatch
in interface Functor<T>
case1
- Function to generate a case (or chain of cases as a single case)otherwise
- Value if supplied case doesn't match