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

Kotlin如何用函数式方法合并同status的Alert对象并按指定格式输出

告警合并格式调整解决方案

你需要先将告警列表按status字段分组,再对同分组下的recordId批量拼接即可实现预期效果,调整后的代码如下:

val alert = if (orderedStatuses.isEmpty()) {
    "No alerts found for status"
} else {
    "Alerts:\n" + orderedStatuses
        .groupBy { it.status }
        .entries
        .joinToString("\n") { (status, alerts) ->
            val recordIdsStr = alerts.joinToString(
                prefix = "('",
                postfix = "')",
                separator = ", "
            ) { it.recordId }
            "\t${status.lowercase()} : \n\t$recordIdsStr"
        }
}

逻辑说明

  • 用Kotlin原生的groupBy函数实现按status分组,得到key为status、value为对应告警列表的Map结构,属于纯函数式实现
  • 对每个分组的告警列表,用joinToString的prefix、postfix参数直接生成括号包裹的id拼接格式,不需要额外做字符串拼接处理
  • 如果不需要将status转为小写,删除.lowercase()即可匹配原始大小写格式
  • 可以通过调整\t的数量适配你需要的缩进效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:48:00