@GwtCompatible public final class Functions extends Object
Function
instances.
All methods returns serializable functions as long as they're given serializable parameters.
Modifier and Type | Method and Description |
---|---|
static <A,B,C> Function<A,C> |
compose(Function<B,C> g,
Function<A,? extends B> f)
Returns the composition of two functions.
|
static <E> Function<Object,E> |
constant(E value)
Creates a function that returns
value for any input. |
static <K,V> Function<K,V> |
forMap(Map<K,? extends V> map,
V defaultValue)
Returns a function which performs a map lookup with a default value.
|
static <K,V> Function<K,V> |
forMap(Map<K,V> map)
Returns a function which performs a map lookup.
|
static <T> Function<T,Boolean> |
forPredicate(Predicate<T> predicate)
Creates a function that returns the same boolean output as the given predicate for all inputs.
|
static <E> Function<E,E> |
identity()
Returns the identity function.
|
static Function<Object,String> |
toStringFunction()
Returns a function that calls
toString() on its argument. |
public static Function<Object,String> toStringFunction()
toString()
on its argument. The function does not accept
nulls; it will throw a NullPointerException
when applied to null
.
Warning: The returned function may not be consistent with equals (as
documented at Function.apply(F)
). For example, this function yields different results for
the two equal instances ImmutableSet.of(1, 2)
and ImmutableSet.of(2, 1)
.
public static <E> Function<E,E> identity()
public static <K,V> Function<K,V> forMap(Map<K,V> map)
IllegalArgumentException
if given a key that does not exist in the map.public static <K,V> Function<K,V> forMap(Map<K,? extends V> map, @Nullable V defaultValue)
defaultValue
for all inputs that do not belong to the map's key
set.map
- source map that determines the function behaviordefaultValue
- the value to return for inputs that aren't map keysmap.get(a)
when a
is a key, or defaultValue
otherwisepublic static <A,B,C> Function<A,C> compose(Function<B,C> g, Function<A,? extends B> f)
f: A->B
and g: B->C
, composition
is defined as the function h such that h(a) == g(f(a))
for each a
.g
- the second function to applyf
- the first function to applyf
and g
public static <T> Function<T,Boolean> forPredicate(Predicate<T> predicate)
The returned function is consistent with equals (as documented at Function.apply(F)
) if and only if predicate
is itself consistent with equals.
Copyright © 2010-2012. All Rights Reserved.