Java 使用Setter方法填充大型参数集
我正在使用POJO创建和获取数据。这些POJO代表我们的API,我们使用它们通过REST Assured进行测试 我有一个Java 使用Setter方法填充大型参数集,java,rest-assured,jsonschema2pojo,Java,Rest Assured,Jsonschema2pojo,我正在使用POJO创建和获取数据。这些POJO代表我们的API,我们使用它们通过REST Assured进行测试 我有一个RequestDTO类,包含30个变量。因为这是一个DTO,所以我在类中使用30个setter方法来更新这些值 我使用方法链接调用这些setter方法,如下所示。我使用varList变量从csv读取数据并提供给此DTO 然而,这看起来很笨拙,可读性差,而且不正确。我想知道这里什么是好的方法/设计模式。因为我对最佳实践和设计模式的了解相对较少 示例代码: public
RequestDTO
类,包含30个变量。因为这是一个DTO,所以我在类中使用30个setter方法来更新这些值
我使用方法链接调用这些setter方法,如下所示。我使用varList
变量从csv读取数据并提供给此DTO
然而,这看起来很笨拙,可读性差,而且不正确。我想知道这里什么是好的方法/设计模式。因为我对最佳实践和设计模式的了解相对较少
示例代码:
public static void setRequestDTO(List<Object> varList) {
MyRequestDTO myrequest = new MyRequestDTO()
.setkey1(varList.get(0).toString())
.setkey2(varList.get(1).toString())
// ........
.setkey30(varList.get(30).toString());
}
publicstaticvoid setRequestDTO(List varList){
MyRequestDTO myrequest=新的MyRequestDTO()
.setkey1(varList.get(0.toString())
.setkey2(varList.get(1.toString())
// ........
.setkey30(varList.get(30.toString());
}
首先,我认为您的DTO太臃肿了-是否真的没有其他方法可以将其分解为更小的类
其次,您使用的是列表
,但所有示例都表明您使用的是字符串值-您是否有可能更改列表的类型参数以消除对所有.toString
调用的需要
第三,您在很大程度上依赖于列表
,该列表包含您希望在DTO上设置的所有必要元素,以确保它们的顺序正确。如果元素太少,这将导致抛出异常
最后,当我考虑重构这个问题的时候,我会给你一个想法,你可以继续进行。如果您决定保留当前的DTO结构,那么考虑将<<代码>列表>代码>构造为<代码> MyRealestDTO < /C> >,然后在其中执行所有的设置程序。这样,每当实例化此DTO的新实例时,您就不会有30行setter,而只在实例化时设置这些值