java - 由注解界定的有界类型参数

标签 java generics annotations

在 Java 中,可以使边界类型参数必须从特定类或接口(interface)扩展,例如

public class Box<T extends MyClass> {
    T t
    ...
}

我是否可以通过注解进行绑定(bind),以便 T 的值只能是具有特定注解的类?

最佳答案

从Java 8开始,你可以写

public class Box<T extends @MyAnno MyClass> {
...
}

与任何 Java 注释一样,要强制执行语义,您需要使用注释处理器。 Checker Framework是一种为您强制执行语义的注释处理工具:如果您尝试使用缺少 @MyAnno< 的类型参数实例化 Box 类型,您可以将其配置为发出错误 注释。

关于java - 由注解界定的有界类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28376290/

相关文章:

c# - 具有泛型的 Lambda

java - 泛型方法的泛型返回类型

java - 使用注释的 Hibernate 枚举映射

c# - 协方差就是接受值吗?

Java Spring MongoDB @TextIndexed 注释未在现有数据库中创建索引

java - 自定义授权注解

java - Spring security hasRole() 给出错误 403 - 访问被拒绝

java - 什么是协变返回类型?

java - 一个循环,要求输入一定数量的数字并输出其中有多少个是偶数

java - Spring数据查询非常慢