Interface Function2<A,B,R>
- Type Parameters:
A- The type of the first argument to the function.B- The type of the second argument to the function.R- The type of the result of the function.
- All Known Subinterfaces:
ThrowingFunction2<A,B, R>
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
This interface extends the standard Java Function pattern to support
two-argument functions. It's useful when you need to pass functions with two parameters to methods
that expect functional interfaces, such as in stream operations, builders, or callback patterns.
Features:
- Functional interface - can be used with lambda expressions and method references
- Composition support - provides
andThen(Function)for function chaining - Type-safe - generic type parameters ensure compile-time type safety
Use Cases:
- Two-argument transformations in functional programming patterns
- Builder methods that accept two-parameter functions
- Stream operations requiring two-argument functions
- Callback patterns with two parameters
Usage:
See Also:
Function3- Three-argument functionFunction4- Four-argument functionFunction5- Five-argument function- juneau-commons Basics
-
Method Summary
Modifier and TypeMethodDescriptionReturns a composed function that first applies this function to its input, and then applies theafterfunction to the result.Applies this function to the given arguments.
-
Method Details
-
andThen
Returns a composed function that first applies this function to its input, and then applies theafterfunction to the result.This method enables function composition, allowing you to chain multiple transformations together.
Example:
Function2<Integer,Integer,Integer>
multiply = (a ,b ) ->a *b ; Function2<Integer,Integer,String>multiplyAndFormat =multiply .andThen(n ->"Result: " +n ); Stringresult =multiplyAndFormat .apply(6, 7);// Returns "Result: 42" - Type Parameters:
V- The type of output of theafterfunction, and of the composed function.- Parameters:
after- The function to apply after this function is applied. Must not benull .- Returns:
- A composed function that first applies this function and then applies the
afterfunction. - Throws:
NullPointerException- ifafterisnull .
-
apply
Applies this function to the given arguments.Example:
Function2<String,Integer,String>
repeat = (s ,n ) ->s .repeat(n ); Stringresult =repeat .apply("ha" , 3);// Returns "hahaha" - Parameters:
a- The first function argument.b- The second function argument.- Returns:
- The function result.
-