如何给Annotation添加限制?
Java注释
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface OneAnnotation{
String aNumber();
}
说我只想允许那些匹配的字符串格式(“[\d]+”),其他字符串将因编译器错误或其他通知而“失败”。 是否有任何这样做——添加对注释方法的返回值的限制。
有效:
@OneAnnotation(aNumber = “1234”)
无效:
@OneAnnotation(aNumber = “XXXX”)
Java annotation
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface OneAnnotation{
String aNumber();
}
say I wanna only permit those string format which matches("[\d]+"), other string will be "failed" by either a complier error or some other notification.
Is there any of doing this---add restriction on returned value on annotation's method.
valid:
@OneAnnotation(aNumber = “1234”)
invalid:
@OneAnnotation(aNumber = “XXXX”)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您也许可以使用注释处理。
除此之外,无法向注释添加任意限制。
但是:如果您想要一个数字,为什么不在这里使用像
int
或long
这样的数字类型(取决于您的范围要求)?You might be able to implement this using annotation processing.
Other than that there's no way to add arbitrary restrictions to your annotations.
But: if you want a number, why don't you use a numeric type like
int
orlong
here (depending on your range requirements)?