交换机内的阵列

时间:2015-01-31 00:47:47

标签: java arrays switch-statement

我想问一下是否有人知道如何在不同情况下使用不同值的交换机中使用相同的数组而不会出现错误。 我有这段代码:

    String [] measures;

        switch(option){
                    case "Distance":
                        measures= {"Quilometers(km)", "Meters(m)"};
                        break;
                    case "Temperature":
                        measures= {"Celsius(ºC)", "Fahrenheit(ºF), "Kelvin(K)"};
                        break;
(...)

我收到错误“此处不允许使用数组初始化程序”,其中我有一个度量= {...}

但如果我更改代码并在每个案例中写字,

String [] measures= {...}

我收到错误“已在范围中定义了变量度量”。 你能帮忙吗?

3 个答案:

答案 0 :(得分:6)

当您未声明变量时,无法使用大括号{}初始化数组。但是你不能重新声明measures,因为它已经在同一个区块中声明了。

您需要在大括号之前明确使用new String[]。尝试

measures = new String[] {"Quilometers(km)", "Meters(m)"};

同样适用于其他情况。

答案 1 :(得分:2)

只需说出measures = new String[] {"而不是measures= {"...

答案 2 :(得分:0)

首先,String[] measures未初始化。您应该使用String measures={...}measures=new String[size];在数组中添加值,然后添加一些值。 其次,更重要的是,字符串不能在switch-case结构中正确使用。它仅测试相等性,仅应用于intchar。干杯!