我正在尝试通过子类化另一个泛型类(有边界)并实现一个泛型接口(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/