【发布时间】:2017-05-09 11:57:19
【问题描述】:
鉴于下面的 try/catch 块,我如何在实际方法范围内返回 return !dateToDate.before(dateFromDate) && dateFromDate.before(dateToDate); 值?它要我返回假。我无法在我想要的位置包含正确的返回值,即 return false 当前所在的位置。
public class YourDateValidator implements ConstraintValidator<ValidDates,
TypeToBeValidated> {
@Override
public void initialize(ValidDates constraintAnnotation) {
}
@Override
public boolean isValid(TypeToBeValidated value, ConstraintValidatorContext context) {
String dateTo = value.getDateTo();
String dateFrom = value.getDateFrom();
SimpleDateFormat formatter = new SimpleDateFormat(DateUtil.dateFormat);
Date dateToDate = null;
Date dateFromDate = null;
try {
dateFromDate = formatter.parse(dateFrom);
dateToDate = formatter.parse(dateTo);
return !dateToDate.before(dateFromDate) && dateFromDate.before(dateToDate);
} catch (ParseException e) {
e.printStackTrace();
}
return false;
}
}
所需代码:
@Override
public boolean isValid(TypeToBeValidated value, ConstraintValidatorContext context) {
String dateTo = value.getDateTo();
String dateFrom = value.getDateFrom();
SimpleDateFormat formatter = new SimpleDateFormat(DateUtil.dateFormat);
Date dateFromDate = formatter.parse(dateFrom);
Date dateToDate = formatter.parse(dateTo);
return !dateToDate.before(dateFromDate) && dateFromDate.before(dateToDate);
}
我不能在 @Overriden isValid 类中抛出 ParseException。但是我不能将返回值放在格式化程序的 try/catch 块中。我该怎么办?
【问题讨论】:
标签: java spring validation date spring-boot