无法推断类型参数错误

时间:2016-11-09 20:28:18

标签: java eclipse type-inference

对于这段代码:

interface IB<T> {
}

interface IC<T extends IB<U>, U> {
    void onMessage(T obj);
}

class MyClass {
    <T extends IB<U>, U> void setValue(IC<T, U> event) {
    }
}

class Foo {
    public static void main(String args[]) {
        MyClass tmp = new MyClass();
        tmp.setValue((event) -> {}); // error here
    }
}

使用Eclipse Neon 4.6.1时出现此错误:

Cannot infer type argument(s) for <T, U> setValue(IC<T,U>)

但使用Eclipse 4.6.0和Intellij IDEA 2016.2编译相同的代码。当我将鼠标悬停在event上时,这些IDE会将类型显示为IB<Object>

这段代码有什么问题,或者这是Eclipse 4.6.1的错误?如果没有错,那么正确推断的TU类型应该是什么?

0 个答案:

没有答案