gpt4 book ai didi

java - 使用 Setter 方法填充大量参数

转载 作者:行者123 更新时间:2023-12-02 08:49:35 25 4
gpt4 key购买 nike

我正在使用 POJO 来创建和获取数据。这些 POJO 代表我们的 API,我们使用它们通过 REST Assured 进行测试。

我有一个包含 30 个变量的 RequestDTO 类。由于这是一个 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());
}

最佳答案

首先,我认为您的 DTO 过于臃肿 - 真的没有其他方法可以将其分解为更小的类吗?

其次,您使用的是 List<Object>但所有示例都表明您正在使用字符串值 - 您是否有机会更改列表的类型参数以消除对所有 .toString 的需要打电话?

第三,你严重依赖你的 List包含您希望在 DTO 上设置的所有必要元素并且它们的顺序都是正确的。如果元素太少,这将导致抛出异常。

最后,虽然我会考虑重构这一点,但我会给您留下一个可以继续进行的想法。如果您决定保留当前的 ​​DTO 结构,请考虑将您的 List<Object>进入 MyRequestDTO 的构造函数然后在那里执行所有的二传手。这样,每当您实例化此 DTO 的新实例时,您就不需要 30 行 setter,并且只需在实例化时设置这些值。

关于java - 使用 Setter 方法填充大量参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60872935/

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