Java 将对象值列表转换为POJO
嗨,我从一个依赖项得到了以下返回值。我试图把它转换成一个POJO,我用它来表示 返回类型结构:Java 将对象值列表转换为POJO,java,pojo,Java,Pojo,嗨,我从一个依赖项得到了以下返回值。我试图把它转换成一个POJO,我用它来表示 返回类型结构: DependencyAPIResult - List<Attribute> 我想将此结果映射到由以下表达式表示的POJO: public class MyPOJO { private pojoId; private pojoName; private pojoValue; } 我当前将结果转换为POJO的方式如下: String pojoId
DependencyAPIResult
- List<Attribute>
我想将此结果映射到由以下表达式表示的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;
}
}
是否有类似的方法/映射器或可能的Java8Lambda函数,我可以使用它们来改进这一点?谢谢 您可以将它们存储在
映射中,而不是使用带有开关的for
:
Map<String, String> valuesByKeyName =
result.getAttributes().stream()
.collect(Collectors.toMap(k -> k.getKey().getName(),
v -> v.getValue().getStringValue()));
String id = valuesByKeyName.get("pojoId");
String name = valuesByKeyName.get("pojoName");
String pojoValue = valuesByKeyName.get("pojoValue");
Pojo pojo = new Pojo(id, name, pojoValue);
Map valuesByKeyName=
result.getAttributes().stream()
.collect(Collectors.toMap(k->k.getKey().getName(),
v->v.getValue().getStringValue());
String id=valuesByKeyName.get(“pojoId”);
String name=valuesByKeyName.get(“pojoName”);
字符串pojoValue=valuesByKeyName.get(“pojoValue”);
Pojo Pojo=新Pojo(id、名称、Pojo值);
您可以将它们存储在地图中,而不是使用带有开关的for
:
Map<String, String> valuesByKeyName =
result.getAttributes().stream()
.collect(Collectors.toMap(k -> k.getKey().getName(),
v -> v.getValue().getStringValue()));
String id = valuesByKeyName.get("pojoId");
String name = valuesByKeyName.get("pojoName");
String pojoValue = valuesByKeyName.get("pojoValue");
Pojo pojo = new Pojo(id, name, pojoValue);
Map valuesByKeyName=
result.getAttributes().stream()
.collect(Collectors.toMap(k->k.getKey().getName(),
v->v.getValue().getStringValue());
String id=valuesByKeyName.get(“pojoId”);
String name=valuesByKeyName.get(“pojoName”);
字符串pojoValue=valuesByKeyName.get(“pojoValue”);
Pojo Pojo=新Pojo(id、名称、Pojo值);
您可以将其收集到映射(result.getAttributes().stream().collect(toMap(a->a.getKey().getName(),a->a.getValue().getStringValue()))
)中,然后使用反序列化库将其转换为POJO,如。您可以将其收集到映射(result.getAttributes().stream().collect(toMap(a->a.getKey().getName()),a->a.getValue().getStringValue())
),然后使用类似的反序列化库将其转换为POJO。