java - 如何解决不可变的String []

时间:2016-10-04 12:19:11

标签: java string immutability

我(我想)理解为什么我在这个方法的tmpString = {"",...}行得到编译错误(非法开始表达)( - > tmpString是不可变的,虽然它之前没有tmpBase行的问题),但是解决这个问题最简单的方法是什么 - 也许是另一种变量类型?谢谢。

public static ArrayList<String> myMethod(String tmpWord, int tmpNum)
{
    ArrayList<String> tmpReturn = new ArrayList<String>(); 
    String   tmpBase   = tmpWord.substring(0,tmpWord.length()-2);
    String[] tmpString = {"a","a","g","g","ya"};
    switch(tmpNum)
    {
        case  1: tmpBase = "xx";
                 break;
        case  2: tmpBase = "yy";
                 break;
        case  3:
                 break;
        default:
        {
            tmpBase   = "-";
            tmpString = {"","","","",""};
            break;
        }
    }
    for (int j=0; j<5; j++)
        tmpReturn.add( (tmpBase + tmpString[j]) );
    return tmpReturn;
}

2 个答案:

答案 0 :(得分:16)

它与不变性无关(数组不是不可变的)。语法如下:

<input type="number" name="number" id="id1">

只能在声明数组变量时使用。

如果要在声明之后为数组分配新值,则需要使用:

String[] array = { ... };

答案 1 :(得分:5)

直接阵列初始化程序仅在声明变量时可用。 对于以后的分配,请使用合格的初始化程序:

tmpString = new String[]{"", "", "", "", ""};