|
|
Method Reference - Reference to a Instance Method example.
This example shows how to use Method Reference feature on instance method:
package com.java2novice.methodreference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.java2novice.lambda.Employee;
public class InstanceMethodReferenceEx {
public static void main(String a[]) {
List<Employee> empList = new ArrayList<>();
empList.add(new Employee("Nataraja G", "Accounts", 8000));
empList.add(new Employee("Nagesh Y", "Admin", 15000));
empList.add(new Employee("Vasu V", "Security", 2500));
empList.add(new Employee("Amar", "Entertinment", 8500));
MyExampComparator comp = new MyExampComparator();
// sort it in method reference way
System.out.println("<--- Sorted list with Method Reference --->");
Collections.sort(empList, comp::compare);
empList.forEach(System.out::println);
// sort it in lambda expression way
System.out.println("\n\n<--- Sorted list with Lambda expression --->");
Collections.sort(empList, (emp1, emp2) -> comp.compare(emp1, emp2));
empList.forEach(System.out::println);
}
}
|
Here is MyExampComparator class:
package com.java2novice.methodreference;
import com.java2novice.lambda.Employee;
public class MyExampComparator {
public int compare(Employee emp1, Employee emp2) {
return emp1.getSalary().compareTo(emp2.getSalary());
}
}
|
Here is Employee POJO class:
package com.java2novice.lambda;
public class Employee {
private String name;
private String account;
private Integer salary;
public Employee(String name, String account, Integer salary) {
super();
this.name = name;
this.account = account;
this.salary = salary;
}
@Override
public String toString() {
return "name: "+ this.name +" | account: "+ this.account +" | salary: "+this.salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public Integer getSalary() {
return salary;
}
public void setSalary(Integer salary) {
this.salary = salary;
}
}
|
|
Output: |
<--- Sorted list with Method Reference --->
name: Vasu V | account: Security | salary: 2500
name: Nataraja G | account: Accounts | salary: 8000
name: Amar | account: Entertinment | salary: 8500
name: Nagesh Y | account: Admin | salary: 15000
<--- Sorted list with Lambda expression --->
name: Vasu V | account: Security | salary: 2500
name: Nataraja G | account: Accounts | salary: 8000
name: Amar | account: Entertinment | salary: 8500
name: Nagesh Y | account: Admin | salary: 15000
|
|
|
|
|
Java-8 Method References Examples
- Method Reference - Reference to a Static Method example.
- Method Reference - Reference to a Instance Method example.
- Method Reference - Reference to a Constructor example.
|
|
What is fail-fast in java?
A fail-fast system is nothing but immediately report any failure that
is likely to lead to failure. When a problem occurs, a fail-fast system
fails immediately. In Java, we can find this behavior with iterators.
Incase, you have called iterator on a collection object, and another
thread tries to modify the collection object, then concurrent modification
exception will be thrown. This is called fail-fast.
The greatest obstacle to discovery is not ignorance; it is the illusion of knowledge.
-- Daniel J. Boorstin
|