【发布时间】:2020-11-19 17:14:22
【问题描述】:
我有一个抽象类,如下所示
public abstract class IndexedPojo {
List<String> keySet;
public List<String> getKeySet() {
return keySet;
}
public void setKeySet(List<String> keySet) {
this.keySet = keySet;
}
public void setKeySet(JsonObject parameters) {
this.keySet = new ArrayList<>(parameters.keySet());
}
public void setKeySet(Map<String,String> parameters) {
this.keySet = new ArrayList<>(parameters.keySet());
}
}
这个抽象类的目的是提供跟踪已在扩展它的类中初始化的变量的功能。为什么我需要这个?我正在为要在测试自动化项目中使用的表单建模 pojo 类。有些参数是可选的,如果它们没有被初始化,相应的表单元素不会被填充。目前我正在使用这种方法来创建扩展IndexedPojo类的类的实例:
public static <T extends IndexedPojo> T deserializeJsonTo(JsonObject parameters, Class<T> tClass) {
Gson gson = new Gson();
T instance = gson.fromJson(parameters, tClass);
instance.setKeySet(parameters);
return instance;
}
但现在的问题是一些嵌套的孩子也是extend IndexedPojo 的类,我想以同样的方式初始化它们。例如
public class RuleSetConfigForm extends IndexedPojo {
@SerializedName("Key")
SomeNestedConfig nestedConfig;
}
public class SomeNestedConfig extends IndexedPojo {
@SerializedName("Some Key")
private String someOptionalParamater1 = "";
@SerializedName("Some Key2")
private String someOptionalParamater2 = "";
@SerializedName("Some Key3")
private String someOptionalParamater3 = "";
}
我如何在初始化RuleSetConfigForm 时初始化嵌套的SomeNestedConfig nestedConfig?有没有自动化的方式来做到这一点?
【问题讨论】:
标签: java json gson deserialization pojo