通用类型作为注释

时间:2014-06-28 20:19:48

标签: java generics

我正在编写一个泛型类,我在这里暴露了一个与db,findById,save等数据库相关的操作。所以有一个像这样的函数:

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

但是如果你仔细看到T类的类总是会用@Entity注释,那我怎么能把它放到我的代码中呢。例如:

Class<? extends Entity>(我知道这是不正确的,但我想清楚地说明我的意思) 感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确并且您只希望能够将Class个对象传递给带有某个注释的注释类,那么答案是不可能的。你不能在编译时加上这样的限制。

在运行时,您必须自己使用反射Class#getAnnotation(Class)进行检查。