Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 泛型:指定参数必须是接口_Java_Generics - Fatal编程技术网

Java 泛型:指定参数必须是接口

Java 泛型:指定参数必须是接口,java,generics,Java,Generics,我尝试这样做一个泛型类: public abstract class MyClass<A extends MyInterface,B,C> implements A{ ... } 公共抽象类MyClass实现了{ ... } (注意:B和C不是接口,只是其他通用参数) 我得到一个编译错误,因为绝对不能保证a是一个接口。因此,抽象类不能实现一个 有没有办法告诉编译器a必须是接口?没有, 由于您使用的子句在编译后将具有以下形式: 公共抽象类MyClass实现java.lang.Obj

我尝试这样做一个泛型类:

public abstract class MyClass<A extends MyInterface,B,C> implements A{
...
}
公共抽象类MyClass实现了{
...
}
(注意:B和C不是接口,只是其他通用参数)

我得到一个编译错误,因为绝对不能保证
a
是一个接口。因此,抽象类不能
实现一个

有没有办法告诉编译器a必须是接口?

没有, 由于您使用的子句在编译后将具有以下形式:

公共抽象类MyClass实现java.lang.Object{


您可以添加
implements MyInterface,B,C
,因为这将检查这些接口是否已实现。

否。如果您不知道其中包含哪些方法,您将如何实现接口?注意:如果您希望泛型类型扩展多个类/类型,则必须使用
A扩展B&C
@Heuster:这是一个抽象类,这些方法必须由子类实现。在本例中可能不清楚,但B和C不是接口。它们只是其他泛型parameters@adenoyelle知道这一点很好——我会直接在你的问题中补充这一点。