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>();