0
好的,这个标题有点令人困惑。但是这是我想要完成的:如何返回泛型类型,而另一个泛型类型为参数,都需要实现interace?
我想返回一个包含类型为C的元素的列表。我想让该方法接收一个类型为R的变量。而C必须是一个实现接口的类,即C_interface,R必须是实现另一个接口的类,即R_interface。
在我的世界里这种方法头应该工作:
public <C implements C_interface, R implements R_interface> List<C> method_name(R r)
但事实并非如此。我得到在Eclipse以下错误:
Multiple markers at this line
- Syntax error on token "implements", ,
expected
- R cannot be resolved to a type
- Syntax error on token "implements", ,
expected
- C cannot be resolved to a type
如果我删除工具接口部分,像这样:
public <C, R> List<C> method_name(R r)
,一切工作正常。我想我可以检查方法内的类型。但如果这样做的话,第一种方式是可能的,那会好很多。
用“扩展”替换“实现”。 [参考](https://docs.oracle.com/javase/tutorial/java/generics/bounded.html) – Makoto
https://docs.oracle.com/javase/tutorial/java/generics/boundedTypeParams.html – Radiodef
possible [T扩展垃圾是什么意思在Java中的泛型类?](http://stackoverflow.com/questions/13632916/what-does-t-extends-junk-mean-in-a-generic- class-in-java) – CKing