La valeur de retour de « putIfAbsent » doit être utilisé - vraiment?

Florian Schaetz:

J'ai un ConcurrentMap de ConcurrentMaps comme celui-ci ...

ConcurrentMap<String, ConcurrentMap<K, V>> mapsMap = new ConcurrentHashMap<>();

Maintenant, dans une méthode, je voudrais éviter NPE en vous assurant une carte existe pour une certaine clé comme celui-ci ...

 mapsMap.putIfAbsent(someKey, new ConcurrentHashMap<K, V>());

... donc je peux appeler en toute sécurité des choses comme ...

 mapsMap.get(someKey).put(...);

... sans se soucier des valeurs nulles ici.

Maintenant, sonarqube me dit, que cela viole la règle Rspec-2201 ...

Valeurs de retour de fonctions sans effets secondaires ne doivent pas être ignorés [..] et sur les appels en ConcurrentMap.putIfAbsent ignorés valeur de retour.

Est-ce juste sonarqube ne détecte pas que l'effet secondaire de la méthode est assez pour moi ici (et la valeur de retour ne pas ajouter de l'information) ou suis-je manque un point important au sujet du contrat putIfAbsent?

LppEdd:

Si la clé spécifiée est pas déjà associée à une valeur (ou est associée à null) associe à la valeur donnée et renvoie NULL, sinon retourne la valeur actuelle.

Vous pouvez ignorer en toute sécurité la valeur retournée, si vous ne avez pas besoin.
Sonarqubeest assez invasif avec certaines règles, donc désactiver juste et aller avec votre entreprise.

AMHA, cette règle spécifique est définie pour la plupart du temps des modèles communs sur un projet où le code est écrit par plusieurs développeurs.

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=172921&siteId=1
conseillé
Classement