In this blog post, I will be explaining how the Java 8 functional interface Supplier works. To know more about functional interfaces, you can refer this blog post.
The Supplier
interface provides a method called get. This method does not accept any arguments. It can return any data type.
Consider the following code snippet:
public static void main(String[] args) {
Supplier<Integer> getRandom = () -> new Random().nextInt(100);
System.out.println("Random number 1 = "+getRandom.get());
System.out.println("Random number 2 = "+getRandom.get());
}
Here, we have implemented the Supplier.get
method using a lambda expression. This get method simple returns a random integer less than 100. So when this code is executed, it will print the following output:
Random number 1 = 98
Random number 2 = 89
Consider the following code snippet:
public class SupplierDemo {
public static void main(String[] args) {
Supplier<Date> dateGenerator = () -> new Date();
System.out.println("Date is "+dateGenerator.get());
}
Again, we have implemented the Supplier.get
method using a lambda expression. This get method simple returns a date object. So when this code is executed, it will print the following output:
Date is Sun Nov 11 13:27:43 IST 2018
You can get the source code for this example along with the code for other Java 8 examples at the GitHub repository here.