Method References

 

 

Method reference is used to refer to a method of a functional interface. It is a compact and easy form of a lambda expression. Each time when you are using a lambda expression to just referring a method, you can replace your lambda expression with method reference.

There are following types of method references in java:

  1. Reference to a static method.
  2. Reference to an instance method.
  3. Reference to a constructor.

Reference to a static method

protected static void methodReferenceWithStaticMethod() {
	List<String> names = Arrays.asList("Laulau","Kinga","Fusi");
		
	names.forEach(MethodReferenceDemo::printMe);
}

public static void printMe(String str) {
	System.out.println("print "+str);
}

 

 

 

Reference to an Object method

List<Integer> numbers = Arrays.asList(5, 3, 50, 24, 40, 2, 9, 18);
numbers = numbers.stream()
		  .sorted((a, b) -> a.compareTo(b)).collect(Collectors.toList());
// equivalent
numbers = numbers.stream().sorted(Integer::compareTo).collect(Collectors.toList());
		
System.out.println(numbers);

Reference with Constructor

class User{
		private String name;
		
		public User(String name) {
			this.name = name;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}
		
		@Override
		public String toString() {
			// TODO Auto-generated method stub
			return this.name;
		}
		
}

....

List<String> names = Arrays.asList("Laulau","Kinga","Fusi");
		
names.forEach(System.out::println);
		
List<User> users = names.stream().map(User::new).collect(Collectors.toList());
	
System.out.println(users);

Result

[Laulau, Kinga, Fusi]

 




Subscribe To Our Newsletter
You will receive our latest post and tutorial.
Thank you for subscribing!

required
required


Leave a Reply

Your email address will not be published. Required fields are marked *