On Sat, 26 Mar 2022 12:14:25 GMT, XenoAmess <d...@openjdk.java.net> wrote:

>> src/java.base/share/classes/java/util/HashMap.java line 2584:
>> 
>>> 2582: 
>>> 2583:     /**
>>> 2584:      * Creates a new, empty HashMap with an initial table size
>> 
>> You probably wanna allow for a non-NEW instance for the corner case where 
>> the given size is 0 - no elements.
>
>> You probably wanna allow for a non-NEW instance for the corner case where 
>> the given size is 0 - no elements.
> 
> @ChrisHegarty I guess we shouldn't.
> 
> I want to make it 100% equals to `new HashMap()` constructor, thus migrate 
> all usecases.
> 
> So if we apply this, and when the original usage use this map object as a 
> lock, or put some elements after the call(sometimes people cannot decide if 
> they would really put elements in this map), bad things would happen.
> 
> Besides, there already a function` Map.of()` for such functionality, so 
> programmer should use that instead if they really want a shared empty map.

hash maps are modifiable. empty instances can be changed, and returning such 
shared instances are inherently unsafe.

-------------

PR: https://git.openjdk.java.net/jdk/pull/7928

Reply via email to