以下のtry/catchブロックがあると、実際のメソッドスコープでreturn !dateToDate.before(dateFromDate) && dateFromDate.before(dateToDate);
の値を返すにはどうすればよいですか?私が虚偽に戻ることを望みます。私はそれが欲しいところ、すなわちreturn false
が現在どこにあるのか、適切な戻り値を含めることはできません。カスタムSpring Validatorの値を返すときのトラブル
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ブロックに入れることはできません。私は何をすべきか?