微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Map 中用 computeIfAbsent() 替换 get() 函数?

如何解决如何在 Map 中用 computeIfAbsent() 替换 get() 函数?

作为 Sonarcloud 分析的结果,有人建议我应该在定义为 Map 的侦听器上使用 computeIfAbsent() 方法而不是 get()。由于我不熟悉这种方法,有谁知道如何正确重构以下 java 代码指示的方法,以便正确使用 computeIfAbsent() 而不是 get()?

public void addListener(String event,EventListener listener) {
    List<EventListener> eventListeners = listeners.get(event);
    if (eventListeners == null) {
        eventListeners = new ArrayList<>();
        listeners.put(event,eventListeners);
    }
    eventListeners.add(listener);
}

解决方法

这就是你所追求的?

listeners.computeIfAbsent(event,ignoreMe -> new ArrayList<>()).add(listener);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。