【问题标题】:How to make elements of array immutable? [duplicate]如何使数组的元素不可变? [复制]
【发布时间】:2017-12-15 01:56:15
【问题描述】:

我有一个最终的字符串数组并将其传递给一个方法。该方法能够更改元素的值,如下所示。如何保护最终String数组的元素不被修改?

class Test {

    public static void main(String[] arguments) {
        final String[] finalNames = new String[] { "Name1", "Name2", "Name3" };
        iterateNames(finalNames);
    }

    private static void iterateNames(final String[] finalNames) {

        //The below assignment should be prevented

        finalNames[0] = "ChangedName1";

        for (String name : finalNames) {
            System.out.println(name);
        }
    }

}

【问题讨论】:

  • 使用防御副本,不要发送原始数组。发送该数组的副本

标签: java arrays final


【解决方案1】:

查看this 答案。 TL:DR:您需要使用其他数据结构来获取不可变数组。

【讨论】:

    猜你喜欢
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-23
    • 2021-08-21
    • 2021-05-11
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多