当前位置: 首页 > 知识库问答 >
问题:

如何使用方法引用获取BigDecimal值[closed]

吴峰
2023-03-14

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

共有1个答案

贺高飞
2023-03-14

您需要了解类型是如何变异的。当您将这个东西映射到您正在使用的薪资时,可以使用BigDecimal类型的可选选项,因此它将不起作用。

Optional<String> salary  = Optional.ofNullable(emp)
                .map(Employee::getSalary)
                .map(BigDecimal::toString);

在您的情况下,我也不明白为什么您应该使用方法引用来访问salary字段,也不明白为什么您使用可选类型...

 类似资料:
  • 请查看以下代码: 这是可行的,但方法名是作为字符串传递的,因此即使myMethod不存在,也会编译。 另一方面,Java8引入了一个方法引用特性。它在编译时被检查。可以使用这个特性来获取方法信息吗? 完整示例: 换句话说,我希望有一个与以下C#代码等效的代码:

  • 问题内容: 在我的数据库中,我具有NextStatDistanceTime值作为浮点数。执行“ ”行时,出现错误 系统无效的强制转换异常 如何在此代码中从sql命令获取浮点值? 这是我的代码: 问题答案: 我想是时候放一张桌子了。 T-SQL类型名称 相当于.NET C#类型名称 `DataReader` 方法 `FLOAT` `System.Double` `double` `IDataRead

  • 我正在使用Apache Jena查询DBpedia以获得特定主题的Wikipedia URL。 所以我使用 一个示例页面是http://dbpedia.org/page/chicago_cubs

  • 我想知道那些每天都涨价的水果的名字。所以产量应该是“苹果”,因为苹果的价格在3月1日是15,3月2日是16,3月3日是17...............................................请任何人给我建议。

  • 我尝试使用ireport对BigDecimal值进行sum和avg算术运算。我做的时候总会有误差。 所有类型都在 ireport 中定义为 BigDecimal 。 -分离,此示例中的变量工作正常,但我不能对变量进行算术运算。 总和与平均值如何键入BigDecimal? 在我的示例中,这不是工作: 我尝试在ireport中使用Java sintax,但是不起作用。 我使用的是3.0.0版iRepo

  • 问题内容: 如何获取BigDecimal变量可以容纳的最大可能值?(最好以编程方式,但也可以进行硬编码) 编辑 好,因为BigDecimal是任意精度,所以才意识到没有这种事情。因此,我最终得到了这个结果,它对于我的目的来说足够大: 问题答案: 它是一个任意精度的类,它将达到您想要的大小,直到您的计算机内存不足。