У меня есть ConcurrentMap из ConcurrentMaps, подобный этому ...
ConcurrentMap<String, ConcurrentMap<K, V>> mapsMap = new ConcurrentHashMap<>();
Теперь, в каком-то методе, я хотел бы предотвратить использование NPE, убедившись, что существует карта для определенного ключа, подобного этому ...
mapsMap.putIfAbsent(someKey, new ConcurrentHashMap<K, V>());
... так что я могу смело вызывать такие вещи, как ...
mapsMap.get(someKey).put(...);
... не беспокоясь о нулевых значениях здесь.
Теперь Сонаркуб говорит мне, что это нарушает правило RSPEC-2201 ...
Возвращаемые значения из функций без побочных эффектов не следует игнорировать[..] а также при вызовах ConcurrentMap.putIfAbsent игнорируемое возвращаемое значение.
Это просто SonarQube не обнаруживает, что побочный эффект метода мне достаточно здесь (и возвращаемое значение не добавитЛюбая информация) или я упускаю важный момент о контракте putIfAbsent?