如何在Java中进行自定义注释,该注释将允许参数具有从指定范围的值



我想创建一个只能应用于方法参数的注释,应指定参数可以接受的值范围。

可以说我有一个注释@MyAnnotation,并且接受0到255的值。

现在,如果我有以下方法

public boolean isInRange(@MyAnnotation int value) {
.......
.......
}

,有些类试图以以下方式称其为:

isInRange(300);

我希望注释发出警告,说该值是不可接受的,应该在范围内(显示范围(。我也不希望编译器对其进行编译,直到正确值传递给方法为止。

现在,我知道@Target(ElementType.PARAMETER)仅将注释应用于参数,但是我不知道如何实现范围逻辑,以及是否应为RetentionPolicy.SOURCERetentionPolicy.RUNTIME

CHECHER框架的@IntRange注释。做这个。恒定值检查器在编译时执行属性 - 也就是说,编译器警告您,如果该方法的客户可以通过非法值。

您可以重新使用该注释,或者如果您想要自己的注释,可以研究其实现。

最新更新