CodesJava

Easy learning with example program codes

Java 8 Method References


Java 8 introduced a new feature “Method Reference” which is used to refer the methods of functional interfaces. It is a shorthand notation of a lambda expression to call a method. We can replace lambda expression with method reference (:: operator) to separate the class or object from the method name.

Types of method references

Type Syntax Example
Reference to a static method Class::staticMethodName String::valueOf
Reference to an instance method object::instanceMethodName x::toString
Reference to a constructor ClassName::new String::new

 

Lambda expression and Method references:

Type As Method Reference As Lambda
Reference to a static method String::valueOf (s) -> String.valueOf(s)
Reference to an instance method x::toString () -> “codesjava”.toString()
Reference to a constructor String::new () -> new String()

Method reference to a static method of a class

package com.codesjava;
 
public class MethodReference {
	    public static void ThreadStatus(){  
	        System.out.println("Thread is running...");  
	    }  
	    public static void main(String[] args) {  
	        Thread t2=new Thread(MethodReference::ThreadStatus);  
	        t2.start();       
	    }  
}

Output

Thread is running...

Method reference to an instance method of an object

package com.codesjava;
 
@FunctionalInterface  
interface DisplayInterface{  
    void display();  
}  
 
public class MethodReference {
	public void sayHello(){  
		System.out.println("Hello Jai");  
	}  
	public static void main(String args[]){
		MethodReference methodReference = new MethodReference();
		// Method reference using the object of the class
		DisplayInterface displayInterface = methodReference::sayHello;
		// Calling the method of functional interface
		displayInterface.display();
	}
}

Output

Hello Jai

Method reference to a constructor

package com.codesjava;
 
@FunctionalInterface 
interface DisplayInterface{  
    Hello display(String say);  
}  
class Hello{  
    public Hello(String say){  
        System.out.print(say);  
    }  
}  
public class MethodReference {  
    public static void main(String[] args) { 
    	//Method reference to a constructor
    	DisplayInterface ref = Hello::new;  
        ref.display("Hello codesjava");  
    }  
}

Output

Hello codesjava


Industrial Training

We offers Placement Oriented Training on Java, Spring, JSF, Hibernate, PHP, AngularJS, Angular 4, PLSQL, Oracle BI Publisher etc. We also provides Online training, please mail us at hr@codesjava.com.

Development

We also provides the Development services for Website Development , Java Development, PHP Development, Android App Development etc. You can contact us on hr@codesjava.com.

Copyright © 2019 CodesJava DMCA.com Protection Status SiteMap Reference: Java Wiki