开关内的数组

Array inside a switch

我想问一下是否有人知道如何在不同情况下使用不同值的开关中的相同数组而不会出错。 我有这个代码:

    String [] measures;

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

我收到错误 "Array initializer is not allowed here" 我有 measure={...}

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

String [] measures= {...}

我收到错误 "Variable measures is already defined in the scope"。 你能帮忙吗?

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

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

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

你的其他案例也是如此。

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

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