int[] arr = {2, 3, 4, 5}
虽然右边是匿名(没有声明具体类型)的,但左边声明了有类型的变量的。因为 数组的可协变性Jvm 可以自动判断出。
return {2, 3, 4, 5};
当作为一个方法的返回值,要求是 int[] 类型。这里是错误的。因为 Java 不会直接判定返回类型是 int[],通常需要检查一遍。而右边是匿名数组,无法确定具体类型,报错。
正确做法是:
return new int[]{2,3,4,5};
或者
int[] arr = {2, 3, 4, 5}
return arr;