java - 通用类型作为注释

标签 java generics

我正在编写一个通用类,其中公开了与数据库相关的操作,例如 find、findById、save 等。所以有一个类似的函数:

public <T> T getById(Class<T> type, long id){
        return <some entityManager>.find(type, id);
    }

但是如果你仔细观察的话,T 类型类总是会被注释为 @Entity那么我怎样才能将其放入我的代码中呢?例如:

Class<? extends Entity> (我知道这是不正确的,但想清楚地表达我的观点) 谢谢。

最佳答案

如果我理解正确并且您只想能够传递带有特定注释的类的 Class 对象,那么答案是不可能的。您不能在编译时设置这样的限制。

在运行时,您必须自己通过反射进行检查,Class#getAnnotation(Class) .

关于java - 通用类型作为注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24470607/

相关文章:

java - 如何复制格式为“bucketName/folder1/folder2”的存储桶的内容

java - 为什么 Java Runtime - unChecked exception 需要子类化

c# - 获取通用接口(interface)的实现类型

java - 将 JSON 字符串转换为 Java 对象列表

java - org.hibernate.exception.JDBCConnectionException : Error calling DriverManager#getConnection

java - 通配符与通用方法

Java 泛型 - 命名实际类型的实际类型

IEnumerable 的 C# 通用约束

java - Java中泛型这 block 怎么理解?

java - 使用 Rhino 从评估的 JS 中获取函数名称及其参数