将字符串转换为BigDecimal

时间:2019-01-02 12:53:33

标签: java

有很多将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();
}

1 个答案:

答案 0 :(得分:3)

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

假设obj.getAmount()返回一个String,它应该像这样:

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