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