Java集合中Map.of()工厂方法返回的是哪个类的实例?
Map.of() 方法返回值实际类型说明
Map.of()是JDK 9新增的集合静态工厂方法,返回的是JDK内置的未对外公开的不可变Map实现类实例,具体类型随传入参数的不同有所区别:
- 无参调用
Map.of()时,返回的是jdk.internal.util.ImmutableCollections.Map0类的实例,对应空的不可变Map - 传入1到10组键值对调用对应重载的
Map.of()方法时,返回的是jdk.internal.util.ImmutableCollections.MapN类的实例 - 传入超过10组键值对需要调用
Map.ofEntries()方法时,返回的也是jdk.internal.util.ImmutableCollections.MapN类的实例
补充说明:上述内部实现类均未对外暴露,你无需也不应该将返回的Map引用强转为具体实现类使用,只需要遵循
Map接口的规范调用方法即可。这些不可变实现均不支持修改操作(调用put、remove等修改方法会直接抛出UnsupportedOperationException),同时不允许null键、null值,也不允许出现重复键。
内容的提问来源于stack exchange,提问作者user9431223
相关产品推荐
相关产品推荐

