有很多将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();
}
答案 0 :(得分:3)
您的代码几乎没有问题,例如new::BigDecimal
不是有效的表达式。
假设obj.getAmount()
返回一个String
,它应该像这样:
Optional.ofNullable(obj.getAmount())
.map(BigDecimal::new)
.ifPresent(payment::setAmount)