如何使用方法引用获取BigDecimal值



我有一个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);

此外,在您的情况下,我不认为您应该使用方法引用来访问薪资字段的原因,也不认为您使用可选类型的原因。。。

最新更新