On Wed, 22 Jun 2022 21:29:50 GMT, Andrey Turbanov <[email protected]> wrote:
>> Instead of separate ConcurrentHashMap.get call, we can use result of
>> previous putIfAbsent call.
>
> Andrey Turbanov has updated the pull request incrementally with one
> additional commit since the last revision:
>
> 8288723: Avoid redundant ConcurrentHashMap.get call in java.time
> use computeIfAbsent where lambda could be short and static
Few more thoughts.
src/java.base/share/classes/java/time/ZoneOffset.java line 435:
> 433: result = prev;
> 434: }
> 435: ID_CACHE.putIfAbsent(result.getId(), result);
Feel free to ignore this one, but you could still have this be a
`computeIfAbsent` and put the ID_CACHE.putIfAbsent part in the lambda. Yeah,
there'll be more work done inside of `computeIfAbsent` but I think it's an
acceptable tradeoff for a more comprehensible code.
src/java.base/share/classes/java/time/format/DecimalStyle.java line 163:
> 161: public static DecimalStyle of(Locale locale) {
> 162: Objects.requireNonNull(locale, "locale");
> 163: return CACHE.computeIfAbsent(locale, l -> create(l));
Suggestion:
return CACHE.computeIfAbsent(locale, DecimalStyle::create);
-------------
Changes requested by attila (Reviewer).
PR: https://git.openjdk.org/jdk/pull/9208