好的,标题有点令人困惑。但这就是我想要实现的目标:
我想返回一个包含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
如果我删除implements接口部分,如下所示:
public <C, R> List<C> method_name(R r)
一切正常。我想我可以检查一下方法中的类型。但如果这样做是第一种方式,那就更好了。
答案 0 :(得分:1)
您应该使用extends
而不是工具。这有效:
public class DoubleParamGeneric {
public <C extends CInterface, R extends RInterface> List<C> m(R r) {
List<C> result = null;
// Process here
return result;
}
}
public interface CInterface {
}
public interface RInterface {
}