我想创建一个只能应用于方法参数的注释,并且应该指定参数可以接受的值的范围。
假设我有一个注释 @MyAnnotation
,它接受 0 到 255 之间的值。
现在如果我有以下方法
public boolean isInRange(@MyAnnotation int value) {
.......
.......
}
有些类尝试通过以下方式调用它:
isInRange(300);
我希望注释给出警告,指出该值 Not Acceptable 并且应该在范围内(显示范围)。我也不希望编译器在将正确的值传递给该方法之前对其进行编译。
现在我知道 @Target(ElementType.PARAMETER)
导致注释仅应用于参数,但我不知道如何实现范围逻辑,也不知道 RetentionPolicy 是否应该RetentionPolicy.SOURCE
或 RetentionPolicy.RUNTIME
最佳答案
@IntRange
Checker Framework 的注释。做这个。 Constant Value Checker在编译时强制执行该属性——也就是说,如果该方法的客户端可能传递非法值,编译器会警告您。
您可以重复使用该注释,或者如果您想要自己的注释,则可以研究其实现。
关于java - 如何在 Java 中创建自定义注释以允许参数具有指定范围内的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477840/