0
我已經知道如何藉助AspectJ檢查整數範圍(請參閱下面的代碼)。AspectJ:字段範圍的動態計算
問題:但我該如何動態計算允許範圍?
代碼:
註釋:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Range {
int min();
int max();
}
驗證:
@Aspect
public class Validation {
@Before("args(value) && @annotation(range)")
public void checkRange(Object value, Range range) throws ValidationException {
double number = ((Number) value).doubleValue();
if (number < range.min() || number > range.max()) {
throw new ValidationException("Invalid data! Range constraint violated!");
}
}
}
實體:
@Entity
@Table(name = "my_entity")
public class MyEntity {
@Range(min = 2, max = 10) // I WANT TO CALCULATE THESE RANGES DYNAMICALLY!!!
private int number;
}