我有一个常量最终列表,我想用一些对象初始化它,同时我想添加一个列表,这在语法上可以用 Java 实现吗?
public static final List<String> MY_LIST = Arrays.asList(new String [] { "Java","Python","Lisp","C#"});
public static final List<String> SUB_LIST = Arrays.asList(new String [] {
"Cobol","Pascal"});
现在有没有办法在初始化 MY_LIST
以及其他对象时将 SUB_LIST
添加到 MY_LIST
?
以简单的伪代码方式,
List A = {"obj1","obj2", addALL(List B)}
谢谢大家。我终于采用了这个解决方案:
public static final List<String> MY_LIST = Collections.unmodifiableList(new ArrayList<String>(){{
addAll(Arrays.asList(new String [] {"Java","Python","Lisp","C#"}));
addAll(SUB_LIST);}});
最佳答案
只有对列表的引用才是最终的,而不是列表本身。如果您想确保列表在初始化后不被更改,您实际上可能想让列表不可修改。
一个解决方案是:
public static final List<String> SUB_LIST = Collections.unmodifiableList(
Arrays.asList("Cobol","Pascal"));
public static final List<String> MY_LIST = Collections.unmodifiableList(
buildMyList(SUB_LIST));
private static List<String> buildMyList(List<String> subList) {
List<String> myList = new ArrayList<> ();
Collections.addAll(myList, "Java", "Python", "Lisp", "C#");
myList.addAll(subList);
return myList;
}
关于java - 在 JAVA 中同时用对象和另一个列表初始化最终列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180301/