使用通用接口时,Java编译器缺少类型推断

时间:2016-07-13 07:07:29

标签: java generics type-inference bounded-wildcard raw-types

为什么编译器没有弄清楚我在下面的代码片段中使用了错误的类型?

这是一个带有通用的接口。

let shatedData = {                                         
  testIndex: 0
}

请注意不使用interface Foo<X> { Map<String, String> getMap(); X addFoos(int foos); } 的getMap()方法。

为什么只用警告编译?

X

只接受有关不安全操作的警告,接受地图的任何类型。

但是,如果添加了通配符,编译器将重新插入并仅允许正确的类型。

void getMapFromFoo(Foo foo) {
    Map<Thread, java.util.GregorianCalendar> why = foo.getMap();
}

发生了什么事?

0 个答案:

没有答案