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

mat*_*boy 1 java generics methods java-5

我在使用泛型定义Java5方法时遇到了一些问题.

我试验过我可以定义一个方法如下:

public <R extends Runnable & MyInterface, T> void submit(R runnable, T task);
Run Code Online (Sandbox Code Playgroud)

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

public <C extends Callable & MyInterface, T> submit(C<T> callable);
Run Code Online (Sandbox Code Playgroud)

其中C是一个Callable也实现MyInterface并具有类型返回值的T.在这种情况下,IDE会在方法公司中报告错误:

required: class
found: type parameter C
where C,T are type-variables
Run Code Online (Sandbox Code Playgroud)

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

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

Pau*_*ora 6

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

public <C extends Callable<T> & MyInterface, T> submit(C callable);
Run Code Online (Sandbox Code Playgroud)