【发布时间】:2022-01-17 22:46:33
【问题描述】:
我有一个 Map
username xyz
password abc
我想把它转换成一个 SimpleUser 对象,它有两个字段:用户名和密码。 当前代码看起来像这样,但我想知道是否可以在 Stream 中进行对象初始化:
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"));
【问题讨论】:
-
如果这张地图是给1个用户的,为什么需要stream来创建一个简单的用户?
-
您的地图是否只有 2 个条目(“用户名”、“密码”)?
-
好像
return adapter.getSecret("abc").map(user -> new SimpleUser(user.get("username").toString(), user.get("password").toString())).orElseThrow(); -
@WingKuiTsoi 如果有另一种没有流的方法也很好,但我只是希望它干净易读。 Prasath 是的,它有
-
“但我只是希望它干净易读”——然后不要添加完全过时的 Stream 操作。使用像 Eklavya 展示的那样。
标签: java java-stream