Conservez la valeur dans Map S'il y a déjà une valeur dans Map, c'est l'histoire quand je l'ai implémentée pour l'utiliser.
ce temps, Map # put () ne renvoie pas la valeur put telle quelle, Je n'ai pas pu l'écrire comme je m'y attendais, c'est-à-dire que c'est une plainte: pleure (Plus précisément, reportez-vous au code source: crayon :)
※ peut-être, Il peut y avoir une solution intelligente et C'est peut-être juste un malentendu: penser:
Main.java
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
//Idéal (je veux écrire comme ça)
String idealKey = "idealKey";
Map<String, String> idealMap = new HashMap<String, String>();
String idealValue = Optional.ofNullable(
idealMap.get(idealKey)
).orElseGet(
//put retourne null ...
() -> idealMap.put(idealKey, "idealValue")
);
System.out.println("get:" + idealValue);
//Réalité (j'ai fini par écrire ça)
String realKey = "realKey";
Map<String, String> realMap = new HashMap<String, String>();
String realStr = Optional.ofNullable(
realMap.get(realKey)
).orElseGet(() -> {
String value = "realValue";
realMap.put(realKey, value);
return value;
});
System.out.println("get:" + realStr);
}
}
get:null
get:realValue
Recommended Posts