Map.of()
时间: 2025-08-09 22:04:27 浏览: 3
### `Map.of()` 方法使用说明
`Java.util.Map` 接口在 Java 9 中引入了静态工厂方法 `of()`,用于创建不可变的 `Map` 实例。该方法提供了一种简洁的方式,用于初始化少量键值对的映射关系,适用于常量映射或配置数据的快速定义。
`Map.of()` 支持多种重载形式,可以接受最多 10 个键值对,也可以接受一个 `Map.Entry` 的数组。生成的 `Map` 是不可变的,意味着一旦创建,就不能进行添加、修改或删除操作。尝试修改会抛出 `UnsupportedOperationException` 异常。
例如,在测试方法中使用了 `Map.of()` 来初始化一个包含模块路径配置的映射:
```java
java.patchModule = Map.of("com.greetings", List.of(Paths.get("xxx")));
```
此代码创建了一个键为 `"com.greetings"`,值为包含一个 `Path` 元素的不可变列表的映射[^1]。
如果需要处理更多的键值对,可以使用 `Map.ofEntries()` 方法,它接受多个 `Map.Entry` 对象,并返回一个不可变的 `Map`。这种方式在处理大量数据时更加灵活。
由于 `Map.of()` 返回的是不可变对象,因此它适用于那些在初始化后不需要更改的场景,例如配置参数、常量映射等。如果需要可变的 `Map`,则应在创建后复制到 `HashMap` 或其他可变实现中。
---
### `Map.merge()` 方法的作用
`Map.merge()` 方法提供了一种简洁的方式来更新 `Map` 中的值。如果指定的键已经存在,则使用提供的函数将旧值和新值合并;如果不存在,则直接插入新值。该方法常用于统计计数或合并重复键的值。
例如,可以使用 `merge()` 方法来统计单词出现的次数:
```java
Map<String, Integer> wordCount = new HashMap<>();
wordCount.merge("Java", 1, Integer::sum);
```
此操作将 `"Java"` 的值增加 1,若不存在则初始化为 1。如果键已存在,则使用 `Integer::sum` 函数将新旧值相加[^2]。
---
### `Mapper.map()` 方法的用途
在 Java 的对象映射框架中,如 Orika,`Mapper.map()` 方法用于将一个对象的属性映射到另一个对象中。这种方式常用于 DTO(Data Transfer Object)与实体对象之间的转换。
例如,可以使用 `MapperFacade.map()` 方法将一个对象转换为另一个类型:
```java
To to = mapper.map(from, To.class);
```
该方法简化了对象之间的转换逻辑,避免了手动编写大量 setter/getter 的代码[^3]。
---
###
阅读全文
相关推荐



















