gpt4 book ai didi

java - 如何将 map 转换为对象?

转载 作者:行者123 更新时间:2023-12-01 23:49:19 26 4
gpt4 key购买 nike

我制作了一个Map来存储SOAPMessage主体上所有标签的值,因此Map的键是节点名称,值是文本内容。我有一个对象,其中已经有以节点名称命名的字段,我需要做的是根据其映射对应项设置它们的值。

假设我在 SOAPMessage 上有一个名为“Summary”的节点,将会有一个名为“Summary”的映射键以及一个名为“Summary”的对象字段。我需要将对象字段“Summary”设置为 Map.get("Summary") 的值。

我知道我可以用每个字段的 setter 填充我的代码,但是有没有办法从 map 设置整个对象?

这是我创建 map 的方法。

private static Map<String, String> mapIncidentInfo(SOAPMessage soapResponse) throws SOAPException {

Map<String, String> fields = new HashMap<String, String>();
NodeList nodes = soapResponse.getSOAPBody().getFirstChild().getChildNodes();

for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
fields.put(node.getNodeName(), node.getTextContent());
}

return fields;
}

这可以用作对象类示例:

public class IncidentPO {

private String Submitter;
private String Submit_Date;
private String Last_Modified_By;
private String Last_Modified_Date;
private String Status;
private String Short_Description;

public IncidentPO(String Submitter, String Submit_Date, String Last_Modified_By, String Last_Modified_Date, String Status, String Short_Description) {
this.Submitter = Submitter;
this.Submit_Date = Submit_Date;
this.Last_Modified_By = Last_Modified_By;
this.Last_Modified_Date = Last_Modified_Date;
this.Status = Status;
this.Short_Description = Short_Description;

//getters and setters here

最佳答案

没有简单的方法(没有库)将 Map 转换为对象。直接的选择是在构造函数中提供 Map 并让它自行填充。

public IncidentPO(Map<String, String> map) {
this.Submitter = map.get("Submitter");
this.Submit_Date = map.get("Submit_Date");
// etc
}

关于java - 如何将 map 转换为对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58225191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com