为什么我们不能扩展泛型?

圣安东尼奥

我们有以下代码:

class MyClass<T>{
...
}
class MyExtendedClass extends MyClass<T>{//Compile error
...
}

我试图创建非通用类,它是通用类的子类型。为什么禁止它?

文森特·范·德·韦勒

您应该在那里放置一个具体的类:

class MyExtendedClass extends MyClass<String>

或将通用类添加到您的子类中

class MyExtendedClass<T> extends MyClass<T>

现在使用它的方式,T当声明MyExtendedClass如下的实例时,您期望的类型是

MyExtendedClass x = new MyExtendedClass();

T在这种情况下,没有办法说出应该怎么办

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果我们只能使用原始类型,为什么在Java中使用泛型时需要扩展?

为什么我们使用扩展?

为什么我们在泛型中使用字母 T,U

为什么我们不能用私有扩展类方法覆盖基类方法?

为什么我们不能在扩展类的静态方法中使用此实例?

为什么我们不能迅速在扩展中添加指定的初始化程序?

为什么我们不能扩展一个以上的班级

Java 中的泛型 - 为什么我不能做 Comparable<? 扩展 T> 而不是 Comparable<? 超级T>?

Kotlin-为什么我们必须为泛型方法显式地指定类型参数?

为什么我们需要在打字稿中编写函数的泛型?例如函数 fill<IDontKnow>(){}

为什么我们不能从逆变型再现

为什么我们不能打电话给setTimeout申请?

为什么我们不能(无效)10?

为什么我们不能访问信号量

为什么我们不能只使用[] []而不是int [] []?

为什么我们不能直接存储Unicode?

为什么我们不能立即调用函数声明?

为什么我们不能保存100%的网站?

我们为什么要使用扩展?

为什么我们不能通过类型扩展来满足F#静态成员约束?

为什么不能使用显式泛型参数调用泛型扩展方法?

在实现测量扩展时,我们可以对单元类型使用泛型吗?

为什么我不能从泛型参数访问属性?

为什么我的泛型泛型不能按预期工作?

为什么我不能创建泛型类的泛型 arraylist 成员?

为什么我们甚至需要delete运算符?(我们不能只使用delete [])

为什么不能将从另一个泛型类扩展的类作为泛型类传递?

add(List <?extended Z>),其中Z是接口。类B扩展了A的实现Z为什么我们不能用List <A>调用add()

为什么这个泛型引用不能指向Java中的类似扩展类?