如何在Java中创建一个允许参数具有指定范围值的自定义注释?

时间:2018-03-25 15:59:47

标签: java annotations

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

假设我有一个注释@MyAnnotation,它接受​​0到255之间的值。

现在,如果我有以下方法

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

并且某些类尝试按以下方式调用它:

isInRange(300);

我希望注释能够发出警告,说明该值是不可接受的,并且应该在范围内(显示范围)。我也不希望编译器在将正确的值传递给方法之前编译它。

现在我知道@Target(ElementType.PARAMETER)导致注释仅应用于参数,但我不知道如何实现范围逻辑,以及RetentionPolicy应该是RetentionPolicy.SOURCE还是{{1 }}

1 个答案:

答案 0 :(得分:1)

@IntRangeChecker Framework注释。做这个。 Constant Value Checker在编译时强制执行属性 - 也就是说,如果方法的客户端可以传递非法值,编译器会发出警告。

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