gpt4 book ai didi

java - List 的类属性类型,不可由访问器修改

转载 作者:行者123 更新时间:2023-12-01 18:32:38 26 4
gpt4 key购买 nike

考虑下面的类:

class Foo
{
private List<Integer> all;
private Set<Integer> distinct;
public List<Integer> getAll()
{
return all;
}
public void add(Integer i)
{
all.add(i);
distinct.add(i);
}
}

我不希望 bar 像这样修改:

foo.getAll().add(3);

相反,我想强制执行我自己的 add() 过程。
有办法做到这一点吗?

最佳答案

您可以使 getAll() 返回 unmodifiable list 。您可以认为它就像返回一个 View ,因此该列表仅处于只读模式。

任何尝试修改返回列表的调用都会抛出UnsupportedOperationException

public List<Integer> getAll(){
return Collections.unmodifiableList(all);
}

关于java - List 的类属性类型,不可由访问器修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23450729/

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