gpt4 book ai didi

java - 如何禁用 Java List 的清除功能

转载 作者:行者123 更新时间:2023-12-01 07:21:16 26 4
gpt4 key购买 nike

我有一个static列表属性(例如 ArrayList<String> )在多个方法之间传递以添加/修改元素。已经有很少的方法,并且在不久的将来将会有很多方法。

所以我需要确保没有方法可以清除列表。到目前为止我已经覆盖了 clear()方法体为空的方法。

我的方法如下:

private static List<String> singleList = new ArrayList<String>(){
@Override
public void clear() {
//here I disabled clear() with empty method
};
};

public static void main(String[] args) throws IOException {
addNumber(singleList);
addDigit(singleList);
addSign(singleList);
System.out.println(singleList);
}


private static void addNumber(List<String> singleList) {
singleList.add("1");
singleList.add("2");
}

private static void addDigit(List<String> singleList) {
singleList.add("A");
singleList.add("B");
singleList.clear();// Suppose, this line wrote accidentally, and I need to prevent it.
}

private static void addSign(List<String> singleList) {
singleList.add("+");
singleList.add("/");
}

有更好的选择吗?

请推荐我。

最佳答案

为此目的,您可以使用不变性。无需改变列表,只需返回一个包含您想要的元素的不可变列表即可。例如,您可以使用 Guava ImmutableList ,创建一个构建器并添加先前的列表和/或新元素。

Guava docs关于clear方法:

Guaranteed to throw an exception and leave the collection unmodified.

关于java - 如何禁用 Java List 的清除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565856/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com