Class FunctionSupport


public final class FunctionSupport
extends Object
Helper class for constructing functions that are fully generic, in contrast to the broken, Object-bound types Guava can build.
  • Constructor Details

    • FunctionSupport

      private FunctionSupport()
  • Method Details

    • constant

      @Nonnull public static <T1,​ T2> Function<T1,​T2> constant​(@Nonnull @ParameterName(name="target") T2 target)
      Creates a function that returns a constant value, like Functions.constant(Object), but with the type of input parameterized as well as the output.
      Type Parameters:
      T1 - type of object the function needs to act on
      T2 - type of object being returned
      target - the value to return from the function
      the constructed function
    • compose

      @Nonnull public static <A,​ B,​ C> Function<A,​C> compose​(@Nonnull @ParameterName(name="g") Function<? super B,​? extends C> g, @Nonnull @ParameterName(name="f") 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.
      Type Parameters:
      A - input to composed function
      B - output of inner function
      C - output of composed function
      g - the second function to apply
      f - the first function to apply
      the composition of f and g
      See Also:
      function composition
    • forPredicate

      @Nonnull public static <T> Function<T,​Boolean> forPredicate​(@Nonnull @ParameterName(name="predicate") Predicate<? super T> predicate)
      Creates a function that returns the same boolean output as the given predicate for all inputs.

      Primarily provided for Spring wiring use cases that can't express a method reference.

      Type Parameters:
      T - input type
      predicate - input predicate
      a corresponding function