【发布时间】:2018-03-01 06:05:26
【问题描述】:
您好,我有以下依赖项的返回值。我正在尝试将其转换为我代表它的 POJO。
返回类型结构:
DependencyAPIResult
- List<Attribute>
每个属性都有以下类定义:
public class Attribute {
@NonNull private final AttributeKey key;
@NonNull private final AttributeValue value;
Getters
.
.
.
Setters
.
.
.
}
我想将此结果映射到一个 POJO 表示为:
public class MyPOJO {
private pojoId;
private pojoName;
private pojoValue;
}
我目前将结果转换为 POJO 的方式是这样的:
String pojoId = null;
String pojoName = null;
String pojoValue = null;
for (Attribute attribute : result.getAttributes()) {
switch (attribute.getKey().getName()) {
case "pojoId"
id = attribute.getValue().getStringValue();
break;
case "pojoName":
name = attribute.getValue().getStringValue();
break;
case "pojoValue":
pojoValue = attribute.getValue().getStringValue();
break;
default:
break;
}
}
是否有类似的方法/映射器或可能是 Java 8 lambda 函数,我可以使用它来使它变得更好?谢谢!
【问题讨论】:
-
您可以将其收集到 Map (
result.getAttributes().stream().collect(toMap(a -> a.getKey().getName(), a -> a.getValue().getStringValue()))),然后使用像 Jackson 这样的反序列化库将其转换为您的 POJO。