## com.google.common.base
Class Functions

    java.lang.Object
      com.google.common.base.Functions

    @GwtCompatible
    public final class Functions

extends Object

Static utility methods pertaining to `Function` 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)
Author:
  Mike Bostock, Jared Levy

Method Summary

`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

`<T> Function<Object,T>`

`

`forSupplier(Supplier<T> supplier)`
Returns a function that always returns the result of invoking `Supplier.get()` on `supplier`, regardless of its input.

`static

`<E> Function<E,E>`

`

`identity()`
Returns the identity function.

`static Function<Object,String>` `toStringFunction()` Returns a function that calls `toString()` on its argument.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### toStringFunction

    public static Function<Object,String> toStringFunction()

  Returns a function that calls `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)`.

### identity

    public static <E> Function<E,E> identity()

  Returns the identity function.

### forMap

    public static <K,V> Function<K,V> forMap(Map<K,V> map)

  Returns a function which performs a map lookup. The returned function throws an `IllegalArgumentException` if given a key that does not exist in the map.

### forMap

    public static <K,V> Function<K,V> forMap(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 returns `defaultValue` for all inputs that do not belong to the map's key set.

  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)` when `a` is a key, or `defaultValue` 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. For `f: A->B` and `g: B->C`, composition is defined as the function h such that `h(a) == g(f(a))` for each `a`.

  Parameters:
    `g` - the second function to apply
    `f` - the first function to apply
  Returns:
    the composition of `f` and `g`
  See Also:
    function composition

### forPredicate

    public 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.

  The returned function is consistent with equals (as documented at `Function.apply(F)`) if and only if `predicate` is itself consistent with equals.

### constant

    public static <E> Function<Object,E> constant(@Nullable
                                                  E value)

  Creates a function that returns `value` 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<Object,T> forSupplier(Supplier<T> supplier)

  Returns a function that always returns the result of invoking `Supplier.get()` on `supplier`, regardless of its input.

  Since:
    10.0

Copyright © 2010-2012. All Rights Reserved.