Un besoin récurrent en Java 8 est la mise à jour des données à l’intérieur du cache : on veut alors modifier une valeur pour une clé existant dans la Map. C’est à ça que sert la méthode computeIfPresent.
Nous avons vu dans l’article précédent que la méthode computeIfAbsent permettait de gérer facilement l’assignation d’une variable dans une Map si la valeur représentée par la clé n’était pas présente. Cette option est très pratique et permet de gagner énormément de temps lors de la création et de la gestion d’un cache applicatif.
Un autre besoin récurrent est la mise à jour des données à l’intérieur du cache : on veut alors modifier une valeur pour une clé existant dans la Map. C’est à ça que sert la méthode computeIfPresent.
La méthode prend en paramètre la clé, ainsi queV> remappingFunction qui en fonction de l’élément trouvé doit créer un nouvel élément.
La syntaxe est la suivante :
hashMap.computeIfPresent(key, (id, commande) -> new Commande(100));
Dans cet exemple, si la commande représentée par la clé est présente dans la Map, alors l’expression LAMBDA est appelée afin de mettre à jour la commande. Ceci peut par exemple être utile dans le cas où l’on souhaite récupérer la commande et lui appliquer un code promo. Auquel cas il suffit de d’appeler computeIfPresent avec la bonne expression LAMBDA. Ainsi on récupère la commande à jour et la mise à jour est aussi répercutée dans la Map.
On peut aussi imaginer si la commande est présente qu’il soit nécessaire de la remplacer par une nouvelle version, par exemple en la rechargeant depuis la base de données.
Le problème rencontré se traduit par une impossibilité de se connecter à une base oracle sous Unix suite à la modification des droits sur le fichier /dev/null.
Le code informatique tend à se complexifier, ce qui rend essentiel la création d’un code propre, ou "Clean Code", pour assurer la pérennité des systèmes et faciliter le travail en équipe sur un code source. Mais qu’est-ce qu’on entend vraiment par clean code ? C’est ce que nous allons voir dans cet article !
Comprendre le fonctionnement de webpack en 2021 dans un projet front-end JavaScript - Concepts & mise en place