gpt4 book ai didi

java - 使我的代码安全的方法? - 私有(private)与公共(public)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:35 26 4
gpt4 key购买 nike

A 类的一个实例有一个私有(private)的 ArrayList。该实例负责维护存储在 arrayList 中的数据。

private ArrayList<SomeDataStructure> myPrivateArrayList;

但是,当其他模块请求数据时,A类的这个实例将不得不将数据传递给任何请求它的人,因此,A类中有一个公共(public)函数:

public ArrayList<SomeDataStructure> getMyPrivateArrayList ();

我的问题,我应该如何实现这个函数,这样我才能保证那些通过这个公共(public)函数得到arrayList的人将无法修改它(即返回值是只读 )?

提前致谢!

最佳答案

我建议改为这样做(如果您的情况允许):

private ArrayList<SomeDataStructure> myPrivateArrayList;

public List<SomeDataStructure> getMyPrivateList () {
return Collections.unmodifiableList(myPrivateArrayList)
}

请注意,公开的数据结构是 List 类型,而不是 ArrayList。我认为(一般来说)一个类的公共(public)接口(interface)不应该返回具体类型,而应该返回接口(interface)。它简化了诸如此类的任务,还减少了一个类对另一个类的实现的依赖程度。

关于java - 使我的代码安全的方法? - 私有(private)与公共(public),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8365220/

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