Java 8 – Supplier Functional Interface

In this article, we will discuss pre-defined Functional Interface in Java 1.8 version which performs some operation (processing) and returns value after processing but doesn’t take any input arguments i.e.; Supplier Functional Interface

1. Supplier Functional Interface:

  • This Functional Interface has one abstract method called T get(); which
  • Step 1 :- doesn’t take any input argument
  • Step 2 :- performs some operation or processes
  • Step 3 :- And return result of any data-type
  • Below is the Supplier Functional interface containing get(); method
1
2
3
4
5
6
7
8
9
10
11
12
package java.util.function;
 
@FunctionalInterface
public interface Supplier<T> {
 
    /**
     * Gets a result.
     *
     * @return a result
     */
    T get();
}

2. Examples for Supplier Functional Interface:

Example 1 – program to get current timestamp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package net.bench.resources.supplier.example;
 
import java.sql.Timestamp;
import java.util.function.Supplier;
 
public class GetCurrentTimestamp {
 
    public static void main(String[] args) {
 
        // lambda expression to get current Timestamp
        Supplier<Timestamp> s = () -> new Timestamp(System.currentTimeMillis());
 
        // invoke above Supplier FI to get print current Timestamp
        System.out.println(s.get());
    }
}

Output:

1
2020-04-25 05:37:27.185

Example 2 – program to generate high security password of 8 digits for Customer login to Bank portal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package net.bench.resources.supplier.example;
 
import java.util.function.Supplier;
 
public class GenerateHighSecurityPassword {
 
    public static void main(String[] args) {
 
        // lambda expression to generate high security password using Supplier
        Supplier<StringBuffer> s = () -> {
 
            // local variable
            StringBuffer password = new StringBuffer();
 
            // iterate through 8 times to generate unique number
            for(int i=0; i<8; i++) {
 
                // append each ransom integer digit to StringBuffer
                password.append((int)(Math.random() * 10));
            }
 
            // finally return password
            return password;
        };
 
        // invoke above Supplier FI to print password for customer login
        System.out.println(s.get());
    }
}

Output:

1
55212896

References:

Happy Coding !!
Happy Learning !!

Java 8 - BiPredicate Functional Interface
Java 8 - Consumer Functional Interface