gpt4 book ai didi

java - 将 ArrayList 对象声明为 final 以在常量文件中使用

转载 作者:IT老高 更新时间:2023-10-28 21:04:13 28 4
gpt4 key购买 nike

我正在生成一个对象的 ArrayList。以下是代码

ArrayList someArrayList = new ArrayList();

Public ArrayList getLotOfData()
{
ArrayList someData = new ArrayList();
return someData;
}


someArrayList = eDAO.getLotOfData();

一旦我有了这个 ArrayList 对象“someArrayList”,我想将它声明为 public 和 final 并将它存储在一个常量文件中,以便可以全局访问它。有没有办法我可以做到这一点?如果我将 Arraylist 对象声明为 public 和 final,那么我将无法为它重新分配任何值。我尝试了以下

public final ArrayList anotherArrayList = new ArrayList();

anotherArrayList.addAll(someArrayList);

我曾希望将此“anotherArrayList”存储为全局 ArrayList 对象并使用它,但这会返回空指针异常。我想像使用字符串常量“ConstantsFile.anotherArrayList”一样使用它。有什么想法???

最佳答案

您可以轻松地将其设为public static final,但这不会阻止人们更改内容

最好的方法是通过以下方式安全地发布“常量”:

  • 将其包装在不可修改的列表中
  • 使用实例 block 来填充它

产生一个带有初始化的整洁的最终声明:

public static final List<String> list = Collections.unmodifiableList(
new ArrayList<String>() {{
add("foo");
add("bar");
// etc
}});

或者,简单元素的相似但不同的样式(不需要代码)

public static final List<String> list = 
Collections.unmodifiableList(Arrays.asList("foo", "bar"));

关于java - 将 ArrayList 对象声明为 final 以在常量文件中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285011/

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