在数组中,我们可以初始化如下内容:
int[] arr = {1, 2, 3, 4, 5};
但是对于二维数组,为什么以下内容不正确?
public class Main {
public static void main(String[] args) {
int[][] arr = new int[3][];
arr[0] = new int[]{1,2,3}; //This is the correct way
arr[0] = {1,2,3}; // ->Why this is not right?
}
}
答案 0 :(得分:1)
是的,您是正确的,第二种创建2D数组的方法将不起作用,因为当编译器无法确定其类型时,编译器便会编译代码。
答案 1 :(得分:0)
您只能在变量初始化期间使用此语法糖。
意味着Java语言规范仅允许
Rails.application.load_seed
或arr[0] = new int[]{1, 2, 3};
。
区别在于,第一个变量是变量分配,第二个变量是变量初始化。
答案 2 :(得分:0)
仅使用代码new int [ ] { 1, 2, 3}
分配第二维的空间。在此之前,编译器不知道数组项的类型和维数。