如果您正在定义一个变量,那么如下声明/定义一个变量似乎是完全有效的:
double[][] output = {{0,0},{1,0}};
但是,如果您要返回一个值,那么编写以下内容似乎是无效的:
public double[] foo(){
return {0,1,2}
}
我会认为在内部,这两个都会执行相同的操作。至少,Eclipse 不同意。有谁知道区别是什么,在哪里可以看到,或者为什么接受前一个例子并拒绝后者是有益的?
编辑:好的,所以在初始化时它是合适的,但我没有看到任何歧义......JVM不能从变量的名称中解释变量的类型(在重新定义已经初始化的变量的情况下)或者返回时(JVM 可以只查看函数的返回类型)?是什么使初始化成为禁止隐式类型的规则的特例?是什么让一般规则需要显式类型?