java - 是否可以同时对有界泛型类和泛型接口(interface)进行泛型子类化?

标签 java generics inheritance subclass extends

我正在尝试通过子类化另一个泛型类(有边界)并实现一个泛型接口(interface)(无边界)来创建一个新类:

public class Foo1<T extends Bar> {
    ...
}

public interface Foo2<T> {
    ...
}

public class ProblemClass<T extends Bar, U> 
        extends Foo1<T extends Bar> implements Foo2<U> {
    ...
}

这给了我编译错误。我也试过:

public class ProblemClass<T, U> 
        extends Foo1<T extends Bar> implements Foo2<U> {
    ...
}

public class ProblemClass<T extends Bar, U> 
        extends Foo1<T> implements Foo2<U> {
    ...
}

但这些都不起作用。

定义子类的正确语法是什么,可以让我保持输入通用,让我将它们的类型传递给父类(super class)和接口(interface)?这可能吗?

谢谢!

最佳答案

这个声明应该可以正常工作。你得到什么错误?您使用的是什么编译器?

class ProblemClass<T extends Bar, U>
  extends Foo1<T>
  implements Foo2<U>
{
  ...
}

这是有效的 Java。如果 IDEA 的编译器拒绝它,则 IntelliJ 有错误。

关于java - 是否可以同时对有界泛型类和泛型接口(interface)进行泛型子类化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360139/

相关文章:

java - 线程安全: Does incrementing values of a primitive wrapper okay?

java - 如何使用正则表达式在 LaTeX 中查找嵌套标签

generics - 如何在 Typescript 中为箭头函数创建泛型类型

Scala 隐式类和继承

C++,帮助扩展这个类

java - 为什么 Jcreator 显示 iLlegal start of expression?

java - 合并来自 hadoop map-reduce 的结果

java - 为什么 Kotlins 类型推断会失败,而 Javas 却不会?

java - Java 中的泛型/接口(interface)和树结构

java - 使用带有函数式接口(interface)的扩展 - Function<?扩展父级,*> 与 Function<? super 父级,*> 与函数<父级,*>