Я не уверен, что имею правильное название. Я хочу выполнить некоторую проверку по запросу. У меня есть этот условный тест во многих местах в моем существующем коде. Он находится в служебном классе. Метод IsRequestLineFallsWithinDateRange (object).
Мне интересно, могу ли я улучшить код и быть более элегантным с Java 8 с помощью предикатов и удалить метод.
Обработка запроса Я хочу проверить каждую строку, если они соответствуют условию. Таким образом, вызывающий метод вызывает этот служебный класс, чтобы проверить, находится ли каждая строка в диапазоне данных. В этом примере это элемент (requestLine) в течение периода подписки.
При поступлении запроса некоторая обработка добавляет объект-член подписки в строку запроса. Затем в каждой строке вызывается служебный метод, чтобы проверить, находится ли строка запроса в пределах периода подписки.
Метод сначала проверяет, что поля даты, которые он должен использовать, не являются пустыми, чтобы предотвратить пустое исключение.
Затем, используя дату строки запроса, сравнивает ее с полями даты начала / окончания подписки, чтобы определить, находятся ли даты в диапазоне.
Я хотел бы заменить метод на Java 8 Вызов функции предиката.
Вот пример метода, который проверяет каждую строку в коллекции, если она находится в диапазоне данных.
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;
.....
}