以下のような Java メソッドがあります。
private static boolean isDateBetweenRange(DataSet obj, MyClass dataSource, ConditionContext context) {
FilterContext fc = dataSource.getData();
LocalDate dateFieldToCheck = obj.getDate(fc.getDateField()).toInstant()
.atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate minDate = fc.getMinDateValue();
LocalDate maxDate = fc.getMaxDateValue();
if (minDate == null || maxDate == null) {
minDate = context.getStartDate().toInstant().atZone(ZoneId.systemDefault())
.toLocalDate();
maxDate = context.getEndDate().toInstant().atZone(ZoneId.systemDefault())
.toLocalDate();
}
boolean result = (dateFieldToCheck.isAfter(minDate) || dateFieldToCheck.isEqual(minDate))
&& (dateFieldToCheck.isBefore(maxDate) || dateFieldToCheck.isEqual(maxDate));
return result;
}
私も同じロジックを作りたいですLocalDateTime
。LocalDateTime
メソッドをオーバーロードすると、まったく同じコードになります。
ジェネリックやその他のメカニズムを使用LocalDate
して動作するようにメソッドをジェネリックにするにはどうすればよいですか?LocalDateTime
私が持っているタイプに基づいて、context.getXXXDate()... toLocalDate()
または共通のコードを作成するにはどうすればよいですか?toLocalDateTime()