根据JEP 286:本地变量类型推断的描述
我想知道引入这样一个限制的原因是什么,即:
所以对我来说,逻辑上应该是:
Main.java:199: error: cannot infer type for local variable k var k = { 1 , 2 }; ^ (array initializer needs an explicit target-type)
var k = {1, 2}; // Infers int[] var l = {1, 2L, 3}; // Infers long[]
因为Java编译器已经能够正确地推断出数组的类型:
void decide() { arr(1, 2, 3); // call void arr(int ...arr) arr(1, 2L, 3); // call void arr(long ...arr) } void arr(int ...arr) { } void arr(long ...arr) { }
那么,障碍是什么?