日期:2014-05-20  浏览次数:20724 次

String二维数组声明编译不通过
public final static String[][] player = new String[3][5]{
{"", "", "", "", ""},
{"", "", "", "", ""},
{"", "", "", "", ""},
};

这么声明错在哪儿,好像非基本类型的数组都要初始化的,直接这么写可以吗?
有没有其他方法
String 二维数组 Java

------解决方案--------------------
去掉new String[3][5]
------解决方案--------------------
引用:
Quote: 引用:

去掉new String[3][5]

测试过可行
public final static String[][] players = new String[][]{
{"", "", "", "", ""},
{"", "", "", "", ""},
{"", "", "", "", ""},
};


数组元素初始化和数组长度不能同时进行,只能二选一
String[][] players = new String[][]
表示的是数据类型吧

------解决方案--------------------
引用:
public final static String[][] player = new String[3][5]{
{"", "", "", "", ""},
{"", "", "", "", ""},
{"", "", "", "", ""},
};

这么声明错在哪儿,好像非基本类型的数组都要初始化的,直接这么写可以吗?
有没有其他方法


语法错误,new是开辟对象空间,然后你后面又给player具体赋值了。初始化了两遍。
------解决方案--------------------
数组初始化的时候,如果你指定了数组长度的时候,jvm会按照指定的长度为你分配内存空间
而如果你在创建数组的时候同时指定初始化值,那么jvm会根据初始化的值来计算数组的长度和内存地址
所以此时是不能给数组指定长度的
如:int []  arr = new int[3]{1,2,3}就是错误的
只能使用int[] arr = {1,2,3}
   或者int [] arr = mew int[3];
       arr[0]=1;
       arr[1]=2;
       arr[2]=3;
来初始化数组