当前位置: 首页 > 知识库问答 >
问题:

如何为其他泛型类声明抽象泛型超类?

慕容典
2023-03-14
    public class CampionsLeague<Team> extends League<Team> {
    ...

“绑定不匹配:Team类型不是league类型 的有界参数 >的有效替代品。”

共有1个答案

谢叶五
2023-03-14

如果您有泛型类

class League<T extends Comparable<T>>

如果要创建它的泛型子类,则必须确保满足所有约束:

class ChampionsLeague<T extends Comparable<T>> extends League<T>

但是,当您想用提供的泛型类型子类class时,例如,有一个类:

class Team implements Comparable<Team>
class ChampionsLeague extends League<Team>
class ChampionsLeague<Team> extends League<Team>
class ChampionsLeague<Team extends Comparable<Team>> extends League<Team>
The type parameter Team is hiding the type Team.
 类似资料:
  • 喂... 我有一些课程: 1.扩展到的TermValue <代码>2。值 3.备选案文 我如何解决(或替代)这些问题?

  • 我在我的一个实用程序类中有一个方法,它接受一个集合和一个类对象,并返回一个Iterable实例,该实例可以遍历作为指定类实例的集合的所有成员。其签名为: 这对于大多数用例都非常有效,但现在我需要将其与泛型类

  • 问题内容: 我有一个像这样的课程: 但是编译器说:。 我如何获得的课程? 问题答案: 绝对有可能将其提取出来,因为它不是在运行时定义的,而是在编译时由定义的。 这是一个启动示例,您可以如何在抽象类的构造函数中提取所需的泛型超类型,同时考虑子类的层次结构(以及在无需显式提供类型的情况下将其应用于泛型方法的实际用例)):

  • 假设您有以下抽象java类: 以及以下子类层次结构: 假设您需要在超类上的给定点使用泛型类型,例如,为了在构造函数上使用gson库将请求json反序列化到特定的请求对象,如下所示: 您需要变量“typeOfI”中的泛型I类型 是否有一个全局解决方案,允许获得由尊重以下约束的具体子类指定的泛型类型? 该类型是在运行时获取的,与子类的层次结构无关(这个问题的示例可能更复杂) 开发人员只需要定义泛型来扩

  • 现在,当我在地图上迭代时…我能以某种方式获得每个Class1对象的类型(K,V)吗??

  • 对于一堆带有泛型的包装类,我的继承结构遇到了一些麻烦。这基本上是结构: 这将与当前代码一起编译和工作,但是,这似乎很危险。如果调用方像这样使用这个方法:,它将很好地编译,但是如果findMiddle尝试返回SubBWrapper,则在运行时会有一个ClassCastException。我以为行得通却行不通的是: 所以我的问题基本上是,有没有正确的方法来编写编译、运行并遵循最佳实践的方法findMi