举个例子,假设你有两个员工对象,其值相同,如下所示。
Employee employee1 = new Employee(1001, "Sam", 20000);
Employee employee2 = new Employee(1001, "Sam", 20000);
if(doCompareEmployees(employee1, employee2)){
System.out.println("Both employee objects are same.");
}else{
System.out.println("Both employee objects are not same.");
}
//Here is compare method using java 8.
private boolean doCompareEmployees(Employee employee1, Employee employee2) {
int returnValue = Comparator.comparing(Employee::getID)
.thenComparing(Employee::getName)
.thenComparing(Employee::getSalary)
.compare(employee1, employee2);
if (returnValue != 0){
return false;
}
return true;
}
我想了解一下,在Java 8中是否有其他更好的方法来比较对象?
Employee
添加一个适当的equals
方法。如果不可能,那么基于属性的检查的最佳方法也没有改变:return employee1.getID()==employee2.getID()) && employee1.getName().equals(employee2.getName()) && employee1.getSalary()==employee2.getSalary());
- Holger