Class Functions
- java.lang.Object
- 
- com.google.common.base.Functions
 
- 
 @GwtCompatible public final class Functions extends java.lang.Object Static utility methods pertaining tocom.google.common.base.Functioninstances; see that class for information about migrating tojava.util.function.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
- Author:
- Mike Bostock, Jared Levy
 
- 
- 
Method SummaryAll Methods Static Methods Concrete Methods Modifier and Type Method Description static <A extends @Nullable java.lang.Object,B extends @Nullable java.lang.Object,C extends @Nullable java.lang.Object>
 Function<A,C>compose(Function<B,C> g, Function<A,? extends B> f)Returns the composition of two functions.static <E extends @Nullable java.lang.Object>
 Function<@Nullable java.lang.Object,E>constant(E value)Returns a function that ignores its input and always returnsvalue.static <K extends @Nullable java.lang.Object,V extends @Nullable java.lang.Object>
 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 extends @Nullable java.lang.Object,V extends @Nullable java.lang.Object>
 Function<K,V>forMap(java.util.Map<K,V> map)Returns a function which performs a map lookup.static <T extends @Nullable java.lang.Object>
 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 <F extends @Nullable java.lang.Object,T extends @Nullable java.lang.Object>
 Function<F,T>forSupplier(Supplier<T> supplier)Returns a function that ignores its input and returns the result ofsupplier.get().static <E extends @Nullable java.lang.Object>
 Function<E,E>identity()Returns the identity function.static Function<java.lang.Object,java.lang.String>toStringFunction()A function equivalent to the method referenceObject::toString, for users not yet using Java 8.
 
- 
- 
- 
Method Detail- 
toStringFunctionpublic static Function<java.lang.Object,java.lang.String> toStringFunction() A function equivalent to the method referenceObject::toString, for users not yet using Java 8. The function simply invokestoStringon its argument and returns the result. It throws aNullPointerExceptionon null input.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).Warning: as with all function types in this package, avoid depending on the specific equals,hashCodeortoStringbehavior of the returned function. A future migration tojava.util.functionwill not preserve this behavior.Java 8+ users: use the method reference Object::toStringinstead. In the future, when this class requires Java 8, this method will be deprecated. SeeFunctionfor more important information about the Java 8+ transition.
 - 
identitypublic static <E extends @Nullable java.lang.Object> Function<E,E> identity() Returns the identity function.Discouraged: Prefer using a lambda like v -> v, which is shorter and often more readable.
 - 
forMappublic static <K extends @Nullable java.lang.Object,V extends @Nullable java.lang.Object> Function<K,V> forMap(java.util.Map<K,V> map) Returns a function which performs a map lookup. The returned function throws anIllegalArgumentExceptionif given a key that does not exist in the map. See alsoforMap(Map, Object), which returns a default value in this case.Note: if mapis aBiMap(or can be one), you can useMaps.asConverterinstead to get a function that also supports reverse conversion.Java 8+ users: if you are okay with nullbeing returned for an unrecognized key (instead of an exception being thrown), you can use the method referencemap::getinstead.
 - 
forMappublic static <K extends @Nullable java.lang.Object,V extends @Nullable java.lang.Object> 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. The function created by this method returnsdefaultValuefor all inputs that do not belong to the map's key set. See alsoforMap(Map), which throws an exception in this case.Java 8+ users: you can just write the lambda expression k -> map.getOrDefault(k, defaultValue)instead.- Parameters:
- map- source map that determines the function behavior
- defaultValue- the value to return for inputs that aren't map keys
- Returns:
- function that returns map.get(a)whenais a key, ordefaultValueotherwise
 
 - 
composepublic static <A extends @Nullable java.lang.Object,B extends @Nullable java.lang.Object,C extends @Nullable java.lang.Object> Function<A,C> compose(Function<B,C> g, Function<A,? extends B> f) Returns the composition of two functions. Forf: A->Bandg: B->C, composition is defined as the function h such thath(a) == g(f(a))for eacha.Java 8+ users: use g.compose(f)or (probably clearer)f.andThen(g)instead.- Parameters:
- g- the second function to apply
- f- the first function to apply
- Returns:
- the composition of fandg
- See Also:
- function composition
 
 - 
forPredicatepublic static <T extends @Nullable java.lang.Object> 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 ifpredicateis itself consistent with equals.Java 8+ users: use the method reference predicate::testinstead.
 - 
constantpublic static <E extends @Nullable java.lang.Object> Function<@Nullable java.lang.Object,E> constant(E value) Returns a function that ignores its input and always returnsvalue.Java 8+ users: use the lambda expression o -> valueinstead.- Parameters:
- value- the constant value for the function to return
- Returns:
- a function that always returns value
 
 - 
forSupplierpublic static <F extends @Nullable java.lang.Object,T extends @Nullable java.lang.Object> Function<F,T> forSupplier(Supplier<T> supplier) Returns a function that ignores its input and returns the result ofsupplier.get().Java 8+ users: use the lambda expression o -> supplier.get()instead.- Since:
- 10.0
 
 
- 
 
-