如何使数组元素不可变?

时间:2017-07-11 06:43:19

标签: java arrays final

我有一个最终的String数组并将其传递给方法。该方法能够更改元素的值,如下所示。如何保护最终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);
        }
    }

}

1 个答案:

答案 0 :(得分:1)

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