我正试图返回empName,如果它是当前的或者是空字符串,但是我无法返回。 后ifPresent它不允许我返回值,请帮助需要与语法。
这是我的结构
import java.util.List;
public class EmployeeData {
private List<Employee> employees = null;
public List<Employee> getEmployees() {
return employees;
}
public void setEmployees(List<Employee> employees) {
this.employees = employees;
}
}
这是我的员工类
public class Employee {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
我的测试程序
import java.util.Collections;
import java.util.Optional;
public class Test {
public static void main(String args[]) {
EmployeeData empData = new EmployeeData();
}
public String getEmpName(EmployeeData empData)
{
Optional.ofNullable(empData.getEmployees()).orElseGet(Collections::emptyList)
.stream().findFirst().ifPresent(
return emp->emp.getName();
)).orElse{
return "";
}
}
}
如果您希望您需要映射
到其姓名的某个员工的任何姓名,则使用findfirst
和orelse
。
ifPresent
将使用数据,并且仅当它们是数据时才使用:在这里,如果不存在,您希望返回并执行某些操作
public String getEmpName(EmployeeData empData) {
return Optional.ofNullable(empData.getEmployees()).orElseGet(Collections::emptyList)
.stream().filter(Objects::nonNull)
.map(Employee::getName).findFirst().orElse("");
}