Java注释类参数

时间:2014-09-23 16:21:11

标签: java annotations

你能告诉我一个例子,用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。 你能解释一下为什么以及在哪里吗?

0 个答案:

没有答案