java - 我不能在泛型中使用继承类代替母类

标签 java android android-studio

您好,假设有以下简单的类:

public class CRUDController<T extends __Entity<T>> {
 ...
}

还有

public class Tag extends __Entity<Tag> {
...
}

还有

public class KalaTag extends Tag {
...
}

当我使用public class TestController extends CRUDController<Tag>时一切都很好,但是当我使用 public class TestController extends CRUDController<KalaTag> 时出现以下错误:

Type parameter 'KalaTag' is not within its bound; should extend '__Entity < KalaTag >'

  • 我的问题是什么?
  • 我做错了什么?

提前谢谢您;)

最佳答案

CRUDController期望其参数 ( T ) 扩展 __Entity<T> .

显然KalaTag不这样做,因为它扩展了 __Entity<Tag> .

<小时/>

可能的解决方案:

  1. 制造KalaTag延长__Entity<KalaTag>直接
  2. 定义Tagclass Tag<T> extends __Entity<T>然后class KalaTag extends Tag<KalaTag>

关于java - 我不能在泛型中使用继承类代替母类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48599308/

相关文章:

JavaFX 2.1 消息框

java - 使用 Canvas 创建 3D 立方体

android - Android ViewDragHelper 中的 ArrayIndexOutOfBoundsException

android - 升级到 Android Studio 3.2.1 后出现构建错误

java - 无法从存储 "C:\Users\....\.android\debug.keystore": Invalid keystore format 读取 key AndroidDebugKey

java - 当 java jvm 编译字节码时,该代码在进程空间中的什么位置?

java - Java访问Web服务时URL和URI的区别

java - Collections.sort 不是排序

android - 强制 "portrait"方向模式

java - 扩展 BaseAdapter 的 ApkAdapter 类的 getView 方法中的 NullPointerException