如何在 Map 中用 computeIfAbsent() 替换 get() 函数?
How to replace the get() function with computeIfAbsent() in a Map?
作为 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);
作为 Sonarcloud 分析的结果,建议我应该在定义为 Map
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);