Java5中的方法公司具有通用内部另一个通用

时间:2013-04-17 13:55:04

标签: java generics methods java-5

使用 Generics 定义 Java5 方法时遇到一些问题。

我试验过我可以按如下方式定义方法:

public <R extends Runnable & MyInterface, T> void submit(R runnable, T task);

因此,submit只接受实现接口RRunnable的类MyInterface的对象的实例。 现在,假设我想做以下事情:

public <C extends Callable & MyInterface, T> submit(C<T> callable);

其中C是Callable,它也实现MyInterface并且返回值为T。在这种情况下,IDE会在方法公司中报告错误:

required: class
found: type parameter C
where C,T are type-variables

定义第二个submit方法的正确方法是什么?

PS:我不知道标题是否是最好的。一旦确定问题类型,请随时改进标题!

1 个答案:

答案 0 :(得分:6)

不能给出类型参数其他类型参数,例如C<T> - 但它们可以受参数化类型的限制。使用以下内容:

public <C extends Callable<T> & MyInterface, T> submit(C callable);