问问题
134 次
2 回答
1
于 2017-12-04T02:58:55.233 回答
1
这是因为类型?
是不变的,并且Object
不是 . 范围内所有类型的子类型?
。
我相信 Java 8 类型推断能够推断出RHST
上Double
的内容,但是由于您在 LHS 上显式分配给 a GenericTools<?>
,因此捕获是一个无界类型变量,它与T
也没有边界的无界变量统一。
没有任何界限, 和的T
签名中的 不能保证是相同的类型——请记住,类型变量是不变的,因为没有表示协变或反变的界限。侧面的擦除只是,并且编译器无法插入运行时检查是否实际上是运行时类型(因为无法具体化!)。因此:无法隐式转换类型,编译失败。Supplier::get
Consumer::accept
T
Supplier
Object
?
?
Object
?
于 2017-12-04T03:14:31.583 回答