我的一个朋友注意到
var<Integer> list = new ArrayList<Double>();
在Java中有效。事实证明list
的类型被评估为ArrayList<Double>
。
[使用var<Integer> list = new ArrayList<>();
时,list
就是ArrayList<Object>
。
[我们两个人都无法弄清var
的通用类型做什么,因为它似乎被忽略了。但是,如果是这样,为什么这在语法上甚至还是正确的呢?
事实证明,仅在具有JDT核心的Eclipse中允许使用var<T>
,javac不接受。因此,我认为这是Eclipse中的错误。