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

标签 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;
}

最佳答案

它与不变性无关(数组不是不变的)。这个语法:

String[] array = { ... };

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

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

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

关于java - 如何解决不可变的 String[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852154/

相关文章:

c - 如何使用C程序检测文件中的特定字符串

java - 如何打印给定字符串中的以下元素?

c# - POCO、ORM 和不变性。如何让它们协同工作?

java - 使用 Java 在 PostgreSQL 中以编程方式生成 OLAP 多维数据集

java - HashMap 仅在选择某个键时打印值

java - Bing Ads Java API BudgetSummaryReportRequest 示例代码

string - 如何在 MATLAB 中将字符串作为函数参数传递?

javascript - 这个问题可以只用函数式编程解决吗?

python - 非变异 'add' 到集合的命名约定

java - 如何在 Cucumber 测试套件中订购功能文件?