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
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

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:

2020-04-25 05:37:27.185

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

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:

55212896

References:

Happy Coding !!
Happy Learning !!

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