The*_*ymo 0 java null multidimensional-array
我正在尝试使用Java中的2D数组制作文本游戏的装甲系统.我已经把它全部弄清楚了,但代码似乎不起作用.
public static String[][] armour = new String[2][3];
{
armour[0][0] = "shirt";
armour[0][1] = "plate";
armour[0][2] = "iron";
armour[1][0] = "1";
armour[1][1] = "0.75";
armour[1][2] = "0.5";
}
public static void main(String[] args) {
System.out.println(armour[0][1]);
}
Run Code Online (Sandbox Code Playgroud)
这应该返回"盘子",但它没有,我一直在查找,修改它和各种各样的现在几个小时,我不能为我的生活搞清楚.这里有人知道吗?
您正在使用实例初始化程序块,您应该使用静态程序块.
public static String[][] armour = new String[2][3];
static {
armour[0][0] = "shirt";
armour[0][1] = "plate";
armour[0][2] = "iron";
armour[1][0] = "1";
armour[1][1] = "0.75";
armour[1][2] = "0.5";
}
Run Code Online (Sandbox Code Playgroud)
试试这个就可以了.您没有创建类的实例,并且static只有在创建实例时才会运行没有关键字的任何块.
另一个选择是使用数组初始化块:
public static String[][] armour =
{{"shirt", "plate", "iron"},{"1", "0.75", "0.5"}};
Run Code Online (Sandbox Code Playgroud)
我有一些评论:
public static变量要求麻烦.使用private变量或常量(public static final)Map来存储键值对:shirt -> 1| 归档时间: |
|
| 查看次数: |
425 次 |
| 最近记录: |