泛型:将类型参数标记为接口,以便其他类型参数可以扩展它

时间:2018-05-16 18:16:51

标签: java generics

我把这个类定义作为我项目的实体框架的一部分:

public abstract class EntityManager<E, I extends EntityImpl<E, I, D> & E, D>
  • E是定义实体功能的接口,用户将使用的类API。
  • I是该界面的具体实现。
  • D内部持久性逻辑的数据类

实体的正常实现通常如下所示:

public class PermissionImpl extends EntityImpl<Permission,PermissionImpl,PermissionData> implements Permission

问题是EntityManager定义不起作用,因为&结构中的第二个类型参数只能是接口而不是类。就我而言,E 总是一个界面。

如何告诉Java只接受E接口,以免错误消失?

0 个答案:

没有答案