Java 8 Functional Interface – Consumer Example
Hello. In this tutorial, we will explain the Consumer functional interface in java 8.
1. Introduction
Before diving deep into the practice stuff let us understand the Consumer
functional interface in java programming. The interface:
- Contains the abstract
accept()
method and defaultandThen()
method which can be used as an assignment for a lambda expression or method reference - Accepts a single argument and does not return any value
Let us understand the Consumer
interface definition derived from the official documentation –
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 | @FunctionalInterface public interface Consumer<T> { /** * Performs this operation on the given argument. * * @param t the input argument */ void accept(T t); default Consumer<T> andThen(Consumer<? super T> after) { Objects.requireNonNull(after); return (T t) -> { accept(t); after.accept(t); }; } } |
2. Practice
Let us dive into some practice stuff from here and I am assuming that you already have the Java 1.8 or greater installed in your local machine. I am using JetBrains IntelliJ IDEA as my preferred IDE. You’re free to choose the IDE of your choice.
2.1 Model class implementation
Create a java file in the com.assignment.util
package and add the following content to it. The file is acting as the model entity for students.
Student.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package com.assignment.com.assignment.util; import java.util.ArrayList; import java.util.List; public class Student { private final int id; private final String name; private Student( final int id, final String name) { this .id = id; this .name = name; } public static List<Student> createStudents() { final List<Student> students = new ArrayList<>(); students.add( new Student( 101 , "John" )); students.add( new Student( 102 , "Jane" )); students.add( new Student( 103 , "Adam" )); return students; } public int getId() { return id; } public String getName() { return name; } @Override public String toString() { return "Student{" + "id=" + getId() + ", name='" + getName() + '\ '' + '}' ; } } |
2.2 Consumer interface implementation
Create a java file in the com.assignment
package and add the following content to it. The file will show the Consumer
functional interface implementation.
Example1.java
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | package com.assignment; // Consumer functional interface import com.assignment.com.assignment.util.Student; import java.util.List; import java.util.function.Consumer; public class Example1 { // accept() method example private static void acceptImplementation() { final Consumer<String> stringConsumer = System.out::println; stringConsumer.accept( "JavaCodeGeeks" ); } // andThen() method example private static void andThenImplementation() { final Consumer<String> first = x -> System.out.println(x.toLowerCase()); final Consumer<String> second = y -> System.out.println(y.toUpperCase()); final Consumer<String> result = first.andThen(second); result.accept( "WebCodeGeeks" ); } // forEach() method example private static void forEachImplementation() { final List<Student> students = Student.createStudents(); final Consumer<Student> studentConsumer = student -> System.out.println(student.toString()); students.forEach(studentConsumer); } public static void main(String[] args) { System.out.println( "----- Implementing accept() method -----" ); acceptImplementation(); System.out.println( "\n----- Implementing andThen() method -----" ); andThenImplementation(); System.out.println( "\n----- Implementing forEach() method -----" ); forEachImplementation(); } } |
Run the file and if everything goes well the following output will be logged in the IDE console.
Console output
01 02 03 04 05 06 07 08 09 10 11 | ----- Implementing accept() method ----- JavaCodeGeeks ----- Implementing andThen() method ----- webcodegeeks WEBCODEGEEKS ----- Implementing forEach() method ----- Student{id=101, name='John'} Student{id=102, name='Jane'} Student{id=103, name='Adam'} |
That is all for this tutorial and I hope the article served you with whatever you were looking for. Happy Learning and do not forget to share!
3. Summary
In this tutorial, we learned the Consumer
functional interface implementation. You can download the source code from the Downloads section.
4. Download the Eclipse Project
This was a tutorial where we implemented the Consumer functional interface in java 8.
You can download the full source code of this example here: Java8 functional interface – Consumer tutorial