假设我有一个 Java 方法,它接受一个参数并返回一些内容。
public Employee mapPersonToEmp(Person p) {
......
return new Employee() ;
}
但是,如果我使用 Java 8 Function,我可以实现同样的目标。我的意思是,如果我创建以下函数,我将得到相同的行为。我的问题是推荐哪一款?自 Java 8 诞生以来,哪一种更好或最佳实践?
Function<Person , Employee> function = p -> {
......
return new Employee() ;
} ;
Employee e = function.apply(new Person());
TIA。
最佳答案
Function<Person , Employee> function = p -> {
......
return new Employee() ;
} ;
Employee e = function.apply(new Person());
Lambda 用于传递行为。 如果您的要求是可以使用 Person 类的不同字段来创建 Employee 对象,并且需要在整个代码中传递此行为,那么您可以使用如下所示的内容:-
Employee createEmpFromPerson(Function<Person, Employee> func) {
//this class already has a reference to some person object
return func.apply(person);
}
现在您可以通过以下方式调用它:-
createEmpFromPerson((per) -> new Employee(per.getName(), per.getEmail()));
createEmpFromPerson((per) -> new Employee(per.getName(), per.getAddress()));
这是一个非常简单的示例,旨在解释内置函数接口(interface)如何封装常见所需的行为。
显然,还有更好的例子,但我希望您能理解我想要解释的内容。
关于java.util.Function 或 Java 方法,哪一个是最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48169963/