Java 8 facilitates several functional interface
in java.util.function
package. If we observe carefully, there are primarily four kinds of interfaces provided in this package, which are:
- Supplier
- Consumer
- Function
- Predicate
with the following signatures:
Supplier: () -> T Consumer: T -> () Predicate: T -> boolean Function: T -> R
In this post, alike java.util.function
package, we define a new functional interface, called TriFrunction
that accepts three arguments as parameters and returns the result after computation.
@FunctionalInterface public interface TriFunction<T,U,S, R> { /** * Applies this function to the given arguments. * * @param t the first function argument * @param u the second function argument * @param s the third function argument * @return the function result */ R apply(T t, U u, S s); }
We can use this functional interface to compute the volume of a rectangular prism, by using following lambda expression
.
TriFunction volume = (x,y,z) -> x*y*z
To use this lambda expression in the volume computation, we can simply use the following statement
volume.apply(2.4, 5.3, 10.4)
In this post, we have shown how to create a custom functional interface
and use it to write concise lambda expressions using Java 8. It seems quite straightforward. If you have any question/remark, please leave a comment below.
Hi, thank you for the example :) but you are missing type parameters for the interface.
interface TriFunction
Indeed, you are right. I will fix it soon!
Famous last words ;)
Thanks for sharing this useful post about functional interface of java 8