我正在编写一个泛型类,我在这里暴露了一个与db,findById,save等数据库相关的操作。所以有一个像这样的函数:
public <T> T getById(Class<T> type, long id){
return <some entityManager>.find(type, id);
}
但是如果你仔细看到T类的类总是会用@Entity
注释,那我怎么能把它放到我的代码中呢。例如:
Class<? extends Entity>
(我知道这是不正确的,但我想清楚地说明我的意思)
感谢。
答案 0 :(得分:1)
如果我理解正确并且您只希望能够将Class
个对象传递给带有某个注释的注释类,那么答案是不可能的。你不能在编译时加上这样的限制。
在运行时,您必须自己使用反射Class#getAnnotation(Class)
进行检查。