Java 将对象值列表转换为POJO

Java 将对象值列表转换为POJO,java,pojo,Java,Pojo,嗨,我从一个依赖项得到了以下返回值。我试图把它转换成一个POJO,我用它来表示 返回类型结构: DependencyAPIResult - List<Attribute> 我想将此结果映射到由以下表达式表示的POJO: public class MyPOJO { private pojoId; private pojoName; private pojoValue; } 我当前将结果转换为POJO的方式如下: String pojoId

嗨,我从一个依赖项得到了以下返回值。我试图把它转换成一个POJO,我用它来表示

返回类型结构:

   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。