我正在编写一个通用类,其中公开了与数据库相关的操作,例如 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/