What is a functional interface?
- It’s created in Java 8 to support functional programming
- An functional Interface is an interface with only one abstract method but it can have multiple static methods or default methods.
- We can use lamda expression to create an instance of interface.
- There are some predefined functional interface in Java 8:
- Predicate<T>:
+ Represent predicate of a one argument
+ It has one abstract method name Test have one parameter and return a boolean value.
+ It’s used in filter or remove If method in Stream API
- Supplier<T>
+ It represents for supplier of result
+ It has one abstract method named get (). That method doesn’t have any parameter, but it returns a generic value.
+ It’s used in generate method in Stream API or apply for factory design pattern
- Function<T, R>
+ It represents of a function that accepts one argument and produces a result
+ It has one abstract method name apply. That method has one parameter and it returns a value.
+ It’s used in map () method in Stream API
- Consumer<T>
+ It represents for an operation that accept single input and return no value
+ It has one abstract method named accept have one parameter but return no value
+ It’s often used in the For Each method in Stream API.