我需要根据一些参数(如名字、姓氏等)过滤员工列表。这些参数是用户定义的,用户可以选择所有过滤器或过滤器组合。
public List<Employee> getFilterList(String firstName,String lastName)
{
List<Employee> empList = empRepository.getEmployees();
Stream<Employee> empStream=empList.stream();
if(firstName!=null)
{
empStream= empStream.filter(e-> e.getFirstname().equals(firstName))
}
if(lastName!=null)
{
empStream= empStream.filter(e-> e.getlastName().equals(lastName))
}
return empStream.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
这是这样做的正确方法吗?
注意:上面的代码工作正常,我只是在寻找另一种更好的方法(如果有的话)。
案例一: getFilterList(null,null)返回所有员工名单
情况 2: getFilterList("abc",null)返回名字为 abc 的所有员工的列表。