How to pass a function as a parameter in Java

Java 8Object Oriented ProgrammingProgramming

Yes. From Java 8 onwards, we can do so using method references.

Method references help to point to methods by their names. A method reference is described using "::" symbol. A method reference can be used to point the following types of methods −

  • Static methods

  • Instance methods

  • Constructors using new operator (TreeSet::new)

Method Reference Example

Create the following Java program using any editor of your choice in, say, C:\> JAVA.

Java8Tester.java 

Live Demo 

import java.util.List;
import java.util.ArrayList;
public class Java8Tester {
   public static void main(String args[]) {
      List names = new ArrayList(); names.add("Mahesh");
      names.add("Suresh");
      names.add("Ramesh");
      names.add("Naresh");
      names.add("Kalpesh");
      names.forEach(System.out::println);
   }
}

Here we have passed System.out::println method as a static method reference.

Verify the Result

Compile the class using javac compiler as follows − 

C:\JAVA>javac Java8Tester.java

Now run the Java8Tester as follows − 

C:\JAVA>java Java8Tester

Output

It should produce the following output − 

Mahesh
Suresh
Ramesh
Naresh
Kalpesh
raja
Published on 06-Feb-2018 12:33:27
Advertisements