You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Optional空值处理疑问:调用currencyJson方法传递的是空串还是null

问题解答

你当前的写法存在空指针风险,无法实现空日期返回空字符串的预期:

  • 当entity.getDateFrom()为null时,你直接在Optional.ofNullable的入参中调用.toString()方法,会在Optional逻辑执行前直接抛出NullPointerException,根本走不到orElse("")分支,自然也不可能返回空字符串。

正确处理写法

// 先对日期对象本身做判空,再安全转换为字符串
String start = Optional.ofNullable(entity.getDateFrom()).map(Object::toString).orElse("");
String end = Optional.ofNullable(entity.getDateTo()).map(Object::toString).orElse("");

效果说明

修改后如果原日期对象为null,会直接返回你设置的默认空字符串,最终传入currencyJson方法的参数就是空字符串,不会出现null值。

额外注意

如果两个参数都为空字符串,你拼接出来的请求URL会是http://api.nbp.pl/api/exchangerates/tables/c//,需要确认NBP开放平台是否支持该格式的请求,若不支持可以额外加判断:当两个日期都为空时直接省略日期路径段即可。

内容的提问来源于stack exchange,提问作者Krzysiek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:54:00