Java 无法推断类型参数错误

Java 无法推断类型参数错误,java,eclipse,type-inference,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 mai

对于这段代码:

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
    }
}
接口IB{
}
接口集成电路{
消息无效(T obj);
}
类MyClass{
无效设置值(IC事件){
}
}
福班{
公共静态void main(字符串参数[]){
MyClass tmp=新的MyClass();
setValue((事件)->{});//此处出错
}
}
我在使用Eclipse Neon 4.6.1时遇到此错误:

Cannot infer type argument(s) for <T, U> setValue(IC<T,U>)
无法推断setValue(IC)的类型参数
但同样的代码使用Eclipse4.6.0和IntellijIDEA 2016.2可以很好地编译。当我将鼠标悬停在
event
上时,这些ide显示类型为
IB


那么这段代码有什么问题吗,或者这是一个Eclipse4.6.1错误?如果没有错误,正确推断的
T
U
类型应该是什么?

事件的声明是什么?只是一个lambda参数,您希望编译器为调用
setValue
推断什么类型?为什么?我自己也不确定。Intellij和Eclipse4.6.0认为当我将鼠标悬停在
event
上时,类型是
IB