[英]Transform Map<String, Object> to Object using Java streams
我有一個 Map<String, Object>,我想將其轉換為 Object。 基本上 Map 將包含以下內容:
username xyz
password abc
我想將其轉換為具有兩個字段的 SimpleUser object:用戶名和密碼。 當前代碼看起來像這樣,但我想知道是否可以在 Stream 中進行 object 初始化:
Map<String, String> user = adapter
.getSecret("abc")
.orElseThrow()
.entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, v -> v.getValue().toString()));
return new SimpleUser(user.get("username"), user.get("password"));
這是一種不好的做法,但將它們全部放在一條線上是一種棘手的方法。 僅當SimpleUser(對象)字段名稱與 Map 即用戶名和密碼相同時,才使用 jackson objectMapper。
SimpleUser u = new ObjectMapper().convertValue(
adapter.getSecret("abc")orElseThrow().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, v -> v.getValue().toString()))
, SimpleUser.class);
你將需要這個庫。
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.0</version>
</dependency>
供你參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.