T1
- argument 1 of the functionR
- return type of the function@FunctionalInterface public interface Function1<T1,R> extends λ<R>, Function<T1,R>
λ.Memoized
Modifier and Type | Field and Description |
---|---|
static long |
serialVersionUID
The serial version uid.
|
Modifier and Type | Method and Description |
---|---|
default <V> Function1<T1,V> |
andThen(Function<? super R,? extends V> after)
Returns a composed function that first applies this Function1 to the given argument and then applies
Function
after to the result. |
R |
apply(T1 t1)
Applies this function to one argument and returns the result.
|
default int |
arity() |
default <V> Function1<V,R> |
compose(Function<? super V,? extends T1> before)
Returns a composed function that first applies the Function
before the
given argument and then applies this Function1 to the result. |
default Function1<T1,R> |
curried()
Returns a curried version of this function.
|
static <T> Function1<T,T> |
identity()
Returns the identity Function1, i.e.
|
static <T1,R> Function1<T1,Option<R>> |
lift(Function1<T1,R> partialFunction)
Lifts the given
partialFunction into a total function that returns an Option result. |
default Function1<T1,R> |
memoized()
Returns a memoizing version of this function, which computes the return value for given arguments only one time.
|
static <T1,R> Function1<T1,R> |
of(Function1<T1,R> methodReference)
|
default Function1<T1,R> |
reversed()
Returns a reversed version of this function.
|
default Function1<Tuple1<T1>,R> |
tupled()
Returns a tupled version of this function.
|
isMemoized
static final long serialVersionUID
static <T1,R> Function1<T1,R> of(Function1<T1,R> methodReference)
Function1
based on
Examples (w.l.o.g. referring to Function1):
// using a lambda expression
Function1<Integer, Integer> add1 = Function1.of(i -> i + 1);
// using a method reference (, e.g. Integer method(Integer i) { return i + 1; })
Function1<Integer, Integer> add2 = Function1.of(this::method);
// using a lambda reference
Function1<Integer, Integer> add3 = Function1.of(add1::apply);
Caution: Reflection loses type information of lambda references.
// type of a lambda expression
Type<?, ?> type1 = add1.getType(); // (Integer) -> Integer
// type of a method reference
Type<?, ?> type2 = add2.getType(); // (Integer) -> Integer
// type of a lambda reference
Type<?, ?> type3 = add3.getType(); // (Object) -> Object
R
- return typeT1
- 1st argumentmethodReference
- (typically) a method reference, e.g. Type::method
Function1
static <T1,R> Function1<T1,Option<R>> lift(Function1<T1,R> partialFunction)
partialFunction
into a total function that returns an Option
result.R
- return typeT1
- 1st argumentpartialFunction
- a function that is not defined for all values of the domain (e.g. by throwing)partialFunction
and returns Some(result)
if the function is defined for the given arguments, and None
otherwise.static <T> Function1<T,T> identity()
default int arity()
default Function1<T1,R> curried()
λ
default Function1<Tuple1<T1>,R> tupled()
λ
default Function1<T1,R> reversed()
λ
default Function1<T1,R> memoized()
λ
Please note that memoizing functions do not permit null
as single argument or return value.
default <V> Function1<T1,V> andThen(Function<? super R,? extends V> after)
after
to the result.andThen
in interface Function<T1,R>
V
- return type of afterafter
- the function applied after thisNullPointerException
- if after is nulldefault <V> Function1<V,R> compose(Function<? super V,? extends T1> before)
before
the
given argument and then applies this Function1 to the result.compose
in interface Function<T1,R>
V
- argument type of beforebefore
- the function applied before thisNullPointerException
- if before is nullCopyright © 2016. All Rights Reserved.