T - Type held inside closed varpublic class Mutable<T> extends java.lang.Object implements java.util.function.Supplier<T>, java.util.function.Consumer<T>, Matchable.ValueAndOptionalMatcher<T>
String var = "hello";
Runnable r = () -> var ="world";
Won't compile because var is treated as if it is final.
This can be 'worked around' by using a wrapping object or array.
e.g.
Mutable<String> var = Mutable.of("hello");
Runnable r = () -> var.set("world");
Value.ValueImpl<T>Convertable.SupplierToConvertable<T>| Constructor and Description |
|---|
Mutable() |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(T t) |
static <T> Mutable<T> |
fromExternal(java.util.function.Supplier<T> s,
java.util.function.Consumer<T> c)
Construct a Mutable that gets and sets an external value using the provided Supplier and Consumer
e.g.
|
T |
get() |
<T1> Mutable<T1> |
mapInput(java.util.function.Function<T1,T> fn) |
<R> Mutable<R> |
mapOutput(java.util.function.Function<T,R> fn) |
Mutable<T> |
mutate(java.util.function.Function<T,T> varFn) |
static <T> Mutable<T> |
of(T var)
Create a Mutable variable, which can be mutated inside a Closure
e.g.
|
Mutable<T> |
set(T var) |
Mutable<T> |
toMutable() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waititerator, toOptional, visitmatchesfold, fold, generate, iterate, mapReduce, mkString, newSubscriber, stream, subscribe, test, toDequeX, toEvalAlways, toEvalLater, toEvalNow, toFeatureToggle, toFutureStream, toFutureStream, toIor, toLazyImmutable, toListX, toMaybe, toPBagX, toPOrderedSetX, toPQueueX, toPSetX, toPStackX, toPVectorX, toQueueX, toSetX, toSimpleReact, toSimpleReact, toSortedSetX, toTry, toTry, toTry, toXor, toXor, unapplyendsWith, endsWithIterable, findAny, findFirst, firstValue, foldable, foldRight, foldRight, foldRight, foldRightMapToType, get, groupBy, headAndTail, join, join, join, mapReduce, print, print, printErr, printOut, reduce, reduce, reduce, reduce, reduce, reduce, reduce, schedule, scheduleFixedDelay, scheduleFixedRate, single, single, singleOptional, startsWith, startsWithIterable, toConcurrentLazyCollection, toConcurrentLazyStreamable, toLazyCollection, validate, visit, visit, xMatchfromSupplier, orElse, orElseGet, orElseThrow, toAtomicReference, toCompletableFuture, toCompletableFutureAsync, toCompletableFutureAsync, toFutureW, toList, toOptionalAtomicReference, toStreampublic static <T> Mutable<T> of(T var)
Mutable<Integer> num = Mutable.of(20);
Stream.of(1,2,3,4).map(i->i*10).peek(i-> num.mutate(n->n+i)).foreach(System.out::println);
System.out.println(num.get());
//prints 120
public static <T> Mutable<T> fromExternal(java.util.function.Supplier<T> s, java.util.function.Consumer<T> c)
Mutable<Integer> mutable = Mutable.from(()->this.value*2,val->this.value=val);
s - Supplier of an external valuec - Consumer that sets an external valuepublic T get()
get in interface Convertable<T>get in interface java.util.function.Supplier<T>public Mutable<T> set(T var)
var - New valuepublic Mutable<T> mutate(java.util.function.Function<T,T> varFn)
varFn - New value