Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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 泛型:传递多个类时出错,接口为有界类型 A类{ ... } A=新的A(); a1=新的A(); a2=新的A();_Java_Generics - Fatal编程技术网

Java 泛型:传递多个类时出错,接口为有界类型 A类{ ... } A=新的A(); a1=新的A(); a2=新的A();

Java 泛型:传递多个类时出错,接口为有界类型 A类{ ... } A=新的A(); a1=新的A(); a2=新的A();,java,generics,Java,Generics,从概念上讲,我应该能够传递那些在这里输入代码的类,这些类实现了可运行以及扩展数字,但是我得到了编译时错误,它说绑定不匹配,我在这里做错了什么?没有线程,Runnable和Integer都满足您的类型边界,这需要一个子类Number,该子类也实现了Runnable接口 因此,三次实例化A的尝试都不能通过编译 如果您创建了一个子类Number,该子类实现了Runnable,那么您就可以将它与a类一起使用 例如: class A<T extends Number & Runnable&g

从概念上讲,我应该能够传递那些
在这里输入代码的类,这些类实现了可运行以及扩展数字,但是我得到了编译时错误,它说绑定不匹配,我在这里做错了什么?

没有
线程
Runnable
Integer
都满足您的类型边界,这需要一个子类
Number
,该子类也实现了
Runnable
接口

因此,三次实例化
A
的尝试都不能通过编译

如果您创建了一个子类
Number
,该子类实现了
Runnable
,那么您就可以将它与
a
类一起使用

例如:

class A<T extends Number & Runnable> {

...

}

A<Thread> a = new A<Thread>();
A<Runnable> a1 = new A<Runnable>();
A<Integer> a2 = new A<Integer>();
这将通过以下步骤:

class MyNumber extends Number implements Runnable 
{
    ...
}
A A=新A();

我希望这是一个人为的例子。请不要创建同时实现
Number
Runnable
的类。或者,如果你这样做了,回来向我们解释为什么这是必要的。是的,这是人为的,只是为了理解这个概念。
A<MyNumber> a = new A<MyNumber>();