使用个人验证器时出错。
这是我的Validator,第一个是Number.java
@java.lang.annotation.Documented
@Constraint( validatedBy = NumberValidator.class )
@java.lang.annotation.Target( value = { java.lang.annotation.ElementType.FIELD } )
@java.lang.annotation.Retention( value = java.lang.annotation.RetentionPolicy.RUNTIME )
public @interface Number
{
String message( ) default "Default msg";
Class<?>[] groups( ) default {};
Class<? extends Payload>[] payload( ) default {};
}
然后是NumberValidator.java
public class NumberValidator implements ConstraintValidator<Number, String>
{
@Override
public void initialize( Number constraintAnnotation )
{}
@Override
public boolean isValid( String value, ConstraintValidatorContext context )
{
return NumberUtils.isNumber( value ); // check if the string value is a number
}
}
然后我使用@Number
注释。
它工作到昨天,我什么都没改变(我想),但现在我有这个错误:
Unable to initialize commons.validator.NumberValidator
[...]
Caused by: java.lang.ClassCastException: $Proxy47 cannot be cast to commons.validator.annotation.Number