Package com.google.common.base
Class Functions
- java.lang.Object
-
- com.google.common.base.Functions
-
@GwtCompatible public final class Functions extends java.lang.Object
Static utility methods pertaining toFunction
instances.All methods return serializable functions as long as they're given serializable parameters.
See the Guava User Guide article on the use of
Function
.- Since:
- 2.0 (imported from Google Collections Library)
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method 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<java.lang.Object,E>
constant(E value)
Creates a function that returnsvalue
for any input.static <K,V>
Function<K,V>forMap(java.util.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(java.util.Map<K,V> map)
Returns a function which performs a map lookup.static <T> Function<T,java.lang.Boolean>
forPredicate(Predicate<T> predicate)
Creates a function that returns the same boolean output as the given predicate for all inputs.static <T> Function<java.lang.Object,T>
forSupplier(Supplier<T> supplier)
Returns a function that always returns the result of invokingSupplier.get()
onsupplier
, regardless of its input.static <E> Function<E,E>
identity()
Returns the identity function.static Function<java.lang.Object,java.lang.String>
toStringFunction()
Returns a function that callstoString()
on its argument.
-
-
-
Method Detail
-
toStringFunction
public static Function<java.lang.Object,java.lang.String> toStringFunction()
Returns a function that callstoString()
on its argument. The function does not accept nulls; it will throw aNullPointerException
when applied tonull
.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 instancesImmutableSet.of(1, 2)
andImmutableSet.of(2, 1)
.
-
identity
public static <E> Function<E,E> identity()
Returns the identity function.
-
forMap
public static <K,V> Function<K,V> forMap(java.util.Map<K,V> map)
Returns a function which performs a map lookup. The returned function throws anIllegalArgumentException
if given a key that does not exist in the map. See alsoforMap(Map, Object)
, which returns a default value in this case.Note: if
map
is aBiMap
(or can be one), you can useMaps.asConverter
instead to get a function that also supports reverse conversion.
-
forMap
public static <K,V> Function<K,V> forMap(java.util.Map<K,? extends V> map, @Nullable V defaultValue)
Returns a function which performs a map lookup with a default value. The function created by this method returnsdefaultValue
for all inputs that do not belong to the map's key set. See alsoforMap(Map)
, which throws an exception in this case.- Parameters:
map
- source map that determines the function behaviordefaultValue
- the value to return for inputs that aren't map keys- Returns:
- function that returns
map.get(a)
whena
is a key, ordefaultValue
otherwise
-
compose
public static <A,B,C> Function<A,C> compose(Function<B,C> g, Function<A,? extends B> f)
Returns the composition of two functions. Forf: A->B
andg: B->C
, composition is defined as the function h such thath(a) == g(f(a))
for eacha
.- Parameters:
g
- the second function to applyf
- the first function to apply- Returns:
- the composition of
f
andg
- See Also:
- function composition
-
forPredicate
public static <T> Function<T,java.lang.Boolean> forPredicate(Predicate<T> predicate)
Creates a function that returns the same boolean output as the given predicate for all inputs.The returned function is consistent with equals (as documented at
Function.apply(F)
) if and only ifpredicate
is itself consistent with equals.
-
constant
public static <E> Function<java.lang.Object,E> constant(@Nullable E value)
Creates a function that returnsvalue
for any input.- Parameters:
value
- the constant value for the function to return- Returns:
- a function that always returns
value
-
forSupplier
@Beta public static <T> Function<java.lang.Object,T> forSupplier(Supplier<T> supplier)
Returns a function that always returns the result of invokingSupplier.get()
onsupplier
, regardless of its input.- Since:
- 10.0
-
-