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