【发布时间】:2020-04-30 16:06:56
【问题描述】:
我不确定我的标题是否正确。我想对请求执行一些验证。我在现有代码的很多地方都有这个条件测试。它位于实用程序类中。方法是DoesRequestLineFallsWithinDateRange(object)。
我想知道我是否可以通过使用 Predicates 并停用该方法来改进代码并使用 Java 8 更加优雅。
处理请求: 我想检查每一行是否满足条件。所以调用方法调用这个实用程序类来检查每一行是否在数据范围内。在本例中,是订阅期内的项目(requestLine)。
一个请求进来,一些处理将订阅成员对象添加到请求行。 然后在每一行上调用实用方法来检查请求行是否在订阅期内。
该方法首先检查它应该使用的日期字段是否为空,以防止出现空异常。
然后使用请求行日期,与订阅成员的开始/结束日期字段进行比较以确定日期是否在范围内。
我想用 Java 8 Predicate 函数调用替换该方法。
这里是测试集合中每一行是否在数据范围内的方法示例。
public static boolean DoesRequestLineFallsWithinDateRange(RequestLine requestLine) {
if (isDatesNotNull(requestLine)) {
return requestLine.getServiceStartDate().compareTo(requestLine.getSubscription().getStartDate()) >= 0
&& requestLine.getServiceStartDate().compareTo(requestLine.getSubscription().getEndDate()) <= 0;
}
return false;
}
public class RequestLine(){
private Date serviceStartDate;
private Subscription subscription;
.....
}
【问题讨论】:
-
您应该将该方法设为
RequestLine类的非静态无参数方法,即使其不仅仅是DTO。 -
你没有展示你是如何处理整个请求的。你有
RequestLine的列表吗?请澄清
标签: java java-8 functional-programming predicate