gpt4 book ai didi

java - 如何验证嵌套对象的 Null 值

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


我正在开发一项从上游系统接收请求的服务。

  • 请求可以包含大约 300 个字段。
  • 我的任务是处理订单,但在处理订单之前,我必须执行数据验证。
  • 数据验证主要涉及 null 和empty 检查。我至少必须检查所有必填字段是否既不为空也不为空。

订购 DTO:

public class Order{
private String orderId;
private String sourceOrder;
private String destinationSystem;
private String orderingTimeStamp;
private List<Mapper> properties;
....
}

我不想在每个步骤上检查 null,例如 if(sourceOrder!=null && !sourceOrder.isEmpty()) ,因为我最终会编写大量样板代码。
所以,我想在处理订单之前,让我们验证 null & empty 的订单。检查。如果所有强制值都存在,则处理订单,否则拒绝订单。


我知道@NotNull注释,但这不适用于嵌套对象,例如 private List<Mapper> properties ,将有一个对象列表。在这些元素中,我只想验证选定的元素,而不是全部。


例如,我只需验证 "firstName", "lastName", "Address"List<Mapper> properties ,不是全部。
有什么方法可以实现它,或者我们有任何设计模式/框架来做到这一点吗?
请帮忙。

最佳答案

我要做的是在所有嵌套属性上定义一个validate函数。

首先,您想要定义一个单独的类,它具有不同的标志来控制验证行为。

public class OrderValidationOptions {
// Your options
}

然后或者我们的嵌套类型:

public class Mapper {
// Other Code

public boolean validate(OrderValidationOptions options) {
// validation logic
}
}

Order 类中也类似:

public class Order {
// Other Code
private List<Mapper> properties;

public boolean validate(OrderValidationOptions options) {
// Other logic
if (this.properties != null) {
for(Mapper property: this.properties) {
property.validate(options)
}
}
}
}

关于java - 如何验证嵌套对象的 Null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61117840/

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