In this tutorial, we will learn how to use the Supplier functional interface with an example.
Video Tutorial
Overview
java.util.function.Supplier is a functional interface whose functional method is R get(). The Supplier interface represents an operation that takes no argument and returns a result R:
@FunctionalInterface
public interface Supplier<T> {
T get();
}
Supplier Interface Example #1
The following example shows how to use the get() method of the Supplier interface with Lambda expression.
package com.javaguides.java.functionalinterfaces;
import java.time.LocalDateTime;
import java.util.function.Supplier;
public class SupplierDemo {
public static void main(String[] args) {
Supplier < LocalDateTime > supplier = () -> LocalDateTime.now();
System.out.println(supplier.get());
}
}
Output:
2020-04-30T11:32:51.628
Supplier Interface Example #2
In this example, we will create a list of products and we will supply these products using the Supplier interface.
Let's create a simple Product POJO:
package com.javaguides.java.tutorial;
public class Product {
private int id;
private String name;
private float price;
public Product(int id, String name, float price) {
super();
this.id = id;
this.name = name;
this.price = price;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
@Override
public String toString() {
return "Product [id=" + id + ", name=" + name + ", price=" + price + "]";
}
}
Example:
package com.javaguides.java.functionalinterfaces;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Supplier;
import com.javaguides.java.tutorial.Product;
public class SupplierDemo {
public static void main(String[] args) {
System.out.println(productSupplier().get());
}
private static Supplier < List < Product >> productSupplier() {
Supplier < List < Product >> productSupplier = () -> {
List < Product > productsList = new ArrayList < Product > ();
productsList.add(new Product(1, "HP Laptop", 25000 f));
productsList.add(new Product(2, "Dell Laptop", 30000 f));
productsList.add(new Product(3, "Lenevo Laptop", 28000 f));
productsList.add(new Product(4, "Sony Laptop", 28000 f));
productsList.add(new Product(5, "Apple Laptop", 90000 f));
productsList.add(new Product(6, "Apple Laptop", 90000 f));
productsList.add(new Product(7, "Dell Laptop", 30000 f));
productsList.add(new Product(8, "Dell Laptop", 30000 f));
return productsList;
};
return productSupplier;
}
}
Output:
[Product [id=1, name=HP Laptop, price=25000.0], Product [id=2, name=Dell Laptop, price=30000.0], Product [id=3, name=Lenevo Laptop, price=28000.0], Product [id=4, name=Sony Laptop, price=28000.0], Product [id=5, name=Apple Laptop, price=90000.0], Product [id=6, name=Apple Laptop, price=90000.0], Product [id=7, name=Dell Laptop, price=30000.0], Product [id=8, name=Dell Laptop, price=30000.0]]
Comments
Post a Comment
Leave Comment