Interface Function<F extends @Nullable java.lang.Object,​T extends @Nullable java.lang.Object>

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

    @GwtCompatible
    public interface Function<F extends @Nullable java.lang.Object,​T extends @Nullable java.lang.Object>
    Determines an output value based on an input value; a pre-Java-8 version of java.util.function.Function.

    The Functions class provides common functions and related utilities.

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

    For Java 8+ users

    This interface is now a legacy type. Use java.util.function.Function (or the appropriate primitive specialization such as ToIntFunction) instead whenever possible. Otherwise, at least reduce explicit dependencies on this type by using lambda expressions or method references instead of classes, leaving your code easier to migrate in the future.

    To use an existing function (say, named function) in a context where the other type of function is expected, use the method reference function::apply. A future version of com.google.common.base.Function will be made to extend java.util.function.Function, making conversion code necessary only in one direction. At that time, this interface will be officially discouraged.

    Since:
    2.0
    Author:
    Kevin Bourrillion
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      T apply​(F input)
      Returns the result of applying this function to input.
      boolean equals​(java.lang.Object object)
      May return true if object is a Function that behaves identically to this function.
    • Method Detail

      • apply

        T apply​(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​(@CheckForNull
                       java.lang.Object object)
        May return true if object is a Function that behaves identically to this function.

        Warning: do not depend on the behavior of this method.

        Historically, Function instances in this library have implemented this method to recognize certain cases where distinct Function instances would in fact behave identically. However, as code migrates to java.util.function, that behavior will disappear. It is best not to depend on it.

        Overrides:
        equals in class java.lang.Object