避免Hutool工具包MapUtil.of方法中两个Pair参数的歧义调用

今天在使用hutool工具包里面的MapUtil类的of方法发现,返回的map里面keyvaluePair类,而不是具体的值。
原本想调用的是of(Pair<K, V>... pairs)方法,里面可以传多个Pair类。

在这里插入图片描述
原本的代码片段:

MapUtil.of(
                Pair.of("6", "xxx"),
                Pair.of("19", MapUtil.of(Pair.of("D", "编号x"), Pair.of("I", "编号xx"))),
                Pair.of("16", "xxx")
        )

结果得到的是:{16=xxx, 6=xxx, 19={Pair [key=D, value=编号x]=Pair [key=I, value=编号xx]}}key为19的值有问题
最后发现,MapUtil.of(Pair.of("D", "编号x"), Pair.of("I", "编号xx"))实际是调用了MapUtil类中的另外一个of方法,MapUtil.of方法的形参数量是两个Pair的时候,不是调用of(Pair<K, V>... pairs)方法,而是调用of(K key, V value)方法,所以就导致mapkeyvalue都是Pair类。
在这里插入图片描述
解决办法就是避免传入两个Pair形参,或者其中一个Pair多放一次
例如:

MapUtil.of(Pair.of("D", "编号x"), Pair.of("I", "编号xx"), Pair.of("I", "编号xx"))
posted @ 2025-07-15 11:56  西瓜当冬瓜  阅读(11)  评论(0)    收藏  举报  来源