任何人都可以使用流将下面的代码片段转换为 java 8:
private String findEmp(String nameOrIdToCompare){
for (Employee emp: empArray){
if(emp.getAge() > 60){
//some code
}
if (nameOrIdToCompare.equalsIgnoreCase(emp.getID())){
//some code
return titleOrIdToCompare;
}
else if(emp.getName().equalsIgnoreCase(nameOrIdToCompare)){
//some code
return titleOrIdToCompare;
}
}
return null;
}
我试图使用 java 8 功能转换上面的代码。
Employee[] empArray //array
String nameToCompare
//use empArray.stream().forEach - if streaming list
Optional<String> result = Arrays.stream(empArray)
.filter(e -> e.getAge() > 60)
.map(e -> {
//add logic - below line increments age by 1
e.setAge(e.getAge() + 1);
return e;
})
.filter(e -> nameToCompare.equals(e.getName()) || nameToCompare.equals(e.getId()))
.findFirst()
//add the return logic - below returns name of the e
.map(Employee::getName);
if (result.isPresent()) {
System.out.println(result.get());
} else {}