我有一个Employee类,如下所示
public class Employee {
private String name;
private BigDecimal salary;
// setters and getters
}
我正试图使用MethodReference来获得如下所示的工资
public class TestExample {
public static void main(String args[]) throws ParseException
{
Employee emp = new Employee();
String salary = Optional.ofNullable(emp)
.map(BigDecimal :: getSalary)
.map(String :: toString)
.orElse("");
}
任何想法如何使用MethodReference仅获得工资
现在在toString上看到问题
String salry = Optional.ofNullable(emp)
.map(Employee :: getSalary)
.map(Employee :: toString)
.orElse("");
您需要了解类型是如何变化的。当你将这个东西映射到你正在使用的BigDecimal
类型的可选项的工资时,它就不起作用了。
Optional<String> salary = Optional.ofNullable(emp)
.map(Employee::getSalary)
.map(BigDecimal::toString);
此外,在您的情况下,我不认为您应该使用方法引用来访问薪资字段的原因,也不认为您使用可选类型的原因。。。