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

标签 java annotations

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

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

现在如果我有以下方法

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

有些类尝试通过以下方式调用它:

isInRange(300);

我希望注释给出警告,指出该值 Not Acceptable 并且应该在范围内(显示范围)。我也不希望编译器在将正确的值传递给该方法之前对其进行编译。

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

最佳答案

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

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

关于java - 如何在 Java 中创建自定义注释以允许参数具有指定范围内的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49477840/

相关文章:

java - Spring WS TransformingInterceptor XSLT 复制请求

java - Spring:为什么我在使用注解时需要applicationContext.xml?

java - 无法在 Spring 中继承 @Component?

java - 无法解析导入 javax.annotation.Resource

java - 如何使用 Java 泛型指定 JAXB 元素的名称?

java - 进行连接时的 SQL 查询 varchar 串联

java - 是否可以有多个 xmlRootElement?

java - Eclipse Glassfish/Payara 无法识别我的 JDK

java - Notnoop/java-apns 推送

java - JPA/Hibernate 注解不懂继承?