交换机内的阵列

por*_*ind 2 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;
(...)
Run Code Online (Sandbox Code Playgroud)

我收到错误"这里不允许使用数组初始值设定项",其中我有一个度量= {...}

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

String [] measures= {...}
Run Code Online (Sandbox Code Playgroud)

我收到错误"变量测量已在范围中定义".你能帮忙吗?

rge*_*man 6

只用括号你不能初始化数组{}当你不声明变量.但是你不能重新声明,measures因为它已经在同一个块中声明了.

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

measures = new String[] {"Quilometers(km)", "Meters(m)"};
Run Code Online (Sandbox Code Playgroud)

同样适用于你的其他情况.