如何在Java中创建自定义注释,以允许参数具有指定范围内的值?
我想创建一个只能应用于方法参数的注释,并且应该指定参数可以接受的值的范围 假设我有一个注解如何在Java中创建自定义注释,以允许参数具有指定范围内的值?,java,annotations,Java,Annotations,我想创建一个只能应用于方法参数的注释,并且应该指定参数可以接受的值的范围 假设我有一个注解@MyAnnotation,它接受从0到255的值 现在如果我有下面的方法 public boolean isInRange(@MyAnnotation int value) { ....... ....... } 有些类试图用以下方式来称呼它: isInRange(300) 我希望注释给出一个警告,说明该值不可接受,应该在范围内(显示范围)。在将正确的值传递给方法之前,我也不希望编译器编译它 现在我知道
@MyAnnotation
,它接受从0到255的值
现在如果我有下面的方法
public boolean isInRange(@MyAnnotation int value) {
.......
.......
}
有些类试图用以下方式来称呼它:
isInRange(300)代码>
我希望注释给出一个警告,说明该值不可接受,应该在范围内(显示范围)。在将正确的值传递给方法之前,我也不希望编译器编译它
现在我知道@Target(ElementType.PARAMETER)
导致注释仅应用于参数,但我不知道如何实现范围逻辑,也不知道保留策略是否应该是RetentionPolicy.SOURCE
或RetentionPolicy.RUNTIME
的注释。这样做。在编译时强制执行该属性——也就是说,如果该方法的客户端可能传递非法值,编译器将向您发出警告
如果需要自己的注释,您可以重复使用该注释,或者研究其实现。如果有人执行isInRange(someMethodThatReturnsAnInt())代码>?@OliverCharlesworth在这种情况下,执行应该抛出一个异常,打印一条清晰的消息。但我仍然希望注释在键入值时发出警告