是否有注释类的通配符

时间:2012-07-18 14:28:48

标签: java annotations

持久对象:

@Entity
public class PersistentModelObject{
  ...
}

我需要类似的东西:

interface GenericDao<T annotated_with Entity>{
  //crud
}

或者可以通过某种方式进行模拟(扩展,实施等)。

编辑:请理解我的问题的人将其编辑到可理解的水平。

2 个答案:

答案 0 :(得分:1)

我认为你不能通过泛型使用这样的注释,但是你可以使用java.lang.Class java.lang.reflect.Field isAnnotationPresent(YourAnnotation.class)来检查一个类是否使用某个注释进行注释。

更好的方法可能是使用标记接口?类似的东西:

public class PersistentModelObject implements MyPersistableType{
     ...
}

interface MyPersistableType {} //marker interface

然后你可以像这样使用它:

interface GenericDao<T extends MyPersistableType>{
  //crud
}

但话又说回来,这取决于你想要解决的问题。

答案 1 :(得分:1)

此限制只能在运行时使用反射进行检查。