首页 > 解决方案 > 将字符串转换为 BigDecimal

问题描述

在 Java 中有很多将 String 转换为 BigDecimal 的解决方案,但我的问题有点不同

if (obj.getAmount() != null) {
    payment.setAmount(new BigDecimal(p.getAmount()));
}

如何在 JDK 8 中转换上述代码 ..

我试过下面的代码但没有工作

AppCommonUtils.optional(payment.getAmount()).map(new::BigDecimal).ifPresent(txnCustomerPayment::setAmount);

public static Optional<String> optional(String value) {
   return StringUtils.isNotBlank(value) ? Optional.of(value) : Optional.empty();
}

标签: java

解决方案


您的代码几乎没有问题,例如new::BigDecimal不是有效的表达式。

假设obj.getAmount()返回 aString它应该如下所示:

Optional.ofNullable(obj.getAmount())
    .map(BigDecimal::new)
    .ifPresent(payment::setAmount)

推荐阅读