【问题标题】:Method firm in Java5 with a generic inside another genericJava5中的方法公司在另一个泛型中使用泛型
【发布时间】:2013-04-17 13:55:03
【问题描述】:

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

我实验了,我可以定义一个方法如下:

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

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

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:我不知道这个标题是不是最好的。请在确定问题类型后随时改进标题!

【问题讨论】:

    标签: java generics methods java-5


    【解决方案1】:

    类型参数不能被赋予其他类型参数,例如C&lt;T&gt; - 但它们可以受参数化类型的限制。使用以下内容:

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

    【讨论】:

    • 它可以工作...但是为什么我不应该在参数列表中指定 T 呢?
    • 查看我的编辑 - 基本上,C 由该方法声明一次,然后在其中多次使用。像那样“附加”信息是没有意义的。
    • 是的,有道理!谢谢...我会尽快接受答案!最好的问候!
    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 2014-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多