Function
Date: 2016-05-24

com.google.common.base

## Interface Function<F,T>

- All Known Subinterfaces:
    LoadingCache<K,V>
  All Known Implementing Classes:
    AbstractLoadingCache, Converter, ForwardingLoadingCache, ForwardingLoadingCache.SimpleForwardingLoadingCache

      @GwtCompatible
      public interface Function<F,T>

  Determines an output value based on an input value.

  The `Functions` class provides common functions and related utilites.

  See the Guava User Guide article on the use of `Function`.

  Since:
    2.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `apply(F input)` Returns the result of applying this function to `input`.
    `boolean` | `equals(java.lang.Object object)` Indicates whether another object is equal to this function.

- - ### Method Detail

    - #### apply

          @Nullable
          T apply(@Nullable
                         F input)

      Returns the result of applying this function to `input`. This method is generally expected, but not absolutely required, to have the following properties:
      - Its execution does not cause any observable side effects.
      - The computation is consistent with equals; that is, `Objects.equal``(a, b)` implies that `Objects.equal(function.apply(a), function.apply(b))`.
      Throws:
        `java.lang.NullPointerException` - if `input` is null and this function does not accept null arguments

    - #### equals

          boolean equals(@Nullable
                       java.lang.Object object)

      Indicates whether another object is equal to this function.

      Most implementations will have no reason to override the behavior of `Object.equals(java.lang.Object)`. However, an implementation may also choose to return `true` whenever `object` is a `Function` that it considers interchangeable with this one. "Interchangeable" typically means that `Objects.equal(this.apply(f), that.apply(f))` is true for all `f` of type `F`. Note that a `false` result from this method does not imply that the functions are known not to be interchangeable.

      Overrides:
        `equals` in class `java.lang.Object`