猿问

如何在地图中获取重复键

有时我的 java/groovy 应用程序表现得很奇怪:有一个不为 null 的映射并且其中有值,但是当我试图通过与我在记录该映射时看到的完全相同的键获取值时,我得到了 null。最奇怪的是日志中的映射有重复的键。


重新启动应用程序可以解决问题,但我对这怎么可能感兴趣。


我有这段代码:


def mainField = typeSettings?.mainField != null 

    ? typeSettings?.mainField 

    : classSettings.mainField

logger.info("${typeSettings}\n ${classSettings}\n ${classSettings.mainField}")

我确定那classSettings不是null


这是我在日志中看到的内容:


null

[

    iconsField:[], 

    mainField:[

        [

            code:portalCard, showTitle:false, pages:[card]

        ], 

        [

            code:portalAddForm, showTitle:false, pages:[addForm]

        ]

    ], 

    footer:[showNegotDate:true, showPlanDate:true], 

    footer:[showNegotDate:true, showPlanDate:true]

]

null

但很明显,它mainField存在于地图中,而且footer该地图中不知何故还有两个重复的键。


月关宝盒
浏览 102回答 1
1回答

炎炎设计

有时我的 java/groovy 应用程序表现得很奇怪:有一个不为 null 的映射并且其中有值,但是当我试图通过与我在记录该映射时看到的完全相同的键获取值时,我得到了 null。最奇怪的是日志中的映射有重复的键。重新启动应用程序可以解决问题,但我对这怎么可能感兴趣。我有这段代码:def mainField = typeSettings?.mainField != null     ? typeSettings?.mainField     : classSettings.mainFieldlogger.info("${typeSettings}\n ${classSettings}\n ${classSettings.mainField}")我确定那classSettings不是null这是我在日志中看到的内容:null[    iconsField:[],     mainField:[        [            code:portalCard, showTitle:false, pages:[card]        ],         [            code:portalAddForm, showTitle:false, pages:[addForm]        ]    ],     footer:[showNegotDate:true, showPlanDate:true],     footer:[showNegotDate:true, showPlanDate:true]]null但很明显,它mainField存在于地图中,而且footer该地图中不知何故还有两个重复的键。
随时随地看视频慕课网APP

相关分类

Java
我要回答