Functional Interfaces
Details about functional interfaces in Java.
What is Functional Interface in Java?
A functional interface is an interface that contains exactly one abstract method.
It plays a important role in implementing functional style programming.
Functional interface is usually marked with
@FunctionalInterface
annotation. While optional, this annotation helps the compiler verify that the interface adheres to the "single abstract method" rule.Java's
java.util.function
package provides several built-in functional interfaces.
Sample Example
Create a custom functional interface and add sample logic in the main application to use the newly created interface
Execute the program
Functional Interface vs Normal Interface
Here's a comparison table between Functional Interface and Normal Interface -
Definition
Interfaces with a single abstract method
Interfaces with one or more abstract methods
Annotation
Often annotated with @FunctionalInterface
No specific annotation required
Number of Methods
Exactly one abstract method
One or more abstract methods
Default/Static Methods
Can have default and static methods
Can have default and static methods
Use Case
Designed for lambda expressions and method references
Used for general abstraction and polymorphism
Example
java.util.function.Predicate<T>
java.util.List
, java.util.Map
Syntax with Lambda
Can be instantiated using lambda expressions
Cannot be directly instantiated using lambda expressions
Java 8 and Later
Introduced in Java 8
Existing since the initial versions of Java
Simplicity
Simplifies the creation of instances
More verbose to implement
Primary Purpose
To provide target types for lambda expressions and method references
To define a contract that classes must follow
Functional Interface Example
Normal Interface Example
Last updated
Was this helpful?