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

如何修改嵌套对象数组中String类型的Status字段值?

问题分析与解决方案

你的问题核心在于String是不可变类型:String.replace()方法不会修改原字符串本身,而是返回一个全新的字符串对象。你现在只调用了replace()却没把返回的新值赋值回对象的fulfillmentStatus字段,所以原对象的状态根本没被更新,这也是IDE提示“Result of 'String.replace()' is ignored”的原因。

修正后的代码

假设你的positionItem对象有对应的setter方法(比如setFulfillmentStatus(String status)),修改后的代码应该是这样:

user.positions().listIterator().forEachRemaining(e -> 
    e.positionItems().listIterator().forEachRemaining(l -> {
        if ("NEW".equals(l.fulfillmentStatus())) {
            l.setFulfillmentStatus("PROCESSED");
        }
    })
);

关键说明

  • 先通过"NEW".equals(l.fulfillmentStatus())判断当前状态是否为目标值,避免无意义的字符串操作,同时能防止空指针(如果fulfillmentStatus()可能返回null的话)
  • 必须调用对象的setter方法把新状态值设置进去,这样才能真正修改嵌套对象里的Status字段值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:54:51