I am using this code:
A a = aMap.contains(key) ? aMap.get(key) : createAExpensively(key);
I believe that Java is lazy so if aMap.contains(key))
then the createAExpensively()
function is never called.
Then, I stumbled onto the Map.getOrDefault()
method. If we instead use:
A a = aMap.getOrDefault(key, createAExpensively(key));
is Java still lazy in calling the createAExpensively()
function?
It seems that Java will first create the object A
and pass it as a method parameter, based on this question, but I'm not totally sure.
If Java is not lazy when using Map.getOrDefault()
, what is the point of that method?