你能告诉我一个例子,用Class
类型在注释中创建参数吗?我无法找到合理的地方。
例如,我为用户输入创建了注释,它有一个验证电子邮件,电话号码的验证器。所以我会创建这样的东西:
@interface FormField{
Class<? extends IValidator> validator() default EmptyValidator.class;
}
虽然我能做到,但我必须使用反射来创建实例等。
我认为更直观的是创建类似
的枚举public enum ValidationCriteria {
FREE_TEXT, EMAIL, PHONE
}
和注释现在将是
@interface FormField{
ValidationCriteria validator() default ValidationCriteria.FREE_TEXT;
}
我可以使用Hashmap<ValidationCriteria, Validator>
创建工厂并获得所需的验证器。这对我来说更直观,我也不明白为什么我会使用Class
type
。
你能解释一下为什么以及在哪里吗?