Java 是否在Spring配置中初始化空ArrayList?

Java 是否在Spring配置中初始化空ArrayList?,java,spring,jakarta-ee,Java,Spring,Jakarta Ee,我正在学习春天,我读了《春天在行动》一书。我想知道您是应该注入一个空的arraylist(如果可能的话)还是像下面的示例那样创建它 public class StackOverflow { private List<Car> cars; public StackOverflow() { cars = new ArrayList<Car>(); } } 公共类堆栈溢出{ 私家车名单; 公共堆栈溢出(){ cars=新阵列列表()

我正在学习春天,我读了《春天在行动》一书。我想知道您是应该注入一个空的arraylist(如果可能的话)还是像下面的示例那样创建它

public class StackOverflow {

    private List<Car> cars;

    public StackOverflow() {
        cars = new ArrayList<Car>();
    }
}
公共类堆栈溢出{
私家车名单;
公共堆栈溢出(){
cars=新阵列列表();
}
}

您可以像这样插入一个空列表,但是这可能是不必要的,除非您试图设置一个示例模板spring-XML-config

<property name="cars">
  <list></list>
</property>

如果您想快速设置空列表以防止空指针问题,那么只需使用Collections.emptyList()。您也可以按如下方式“内联”执行。请注意,Collections.emptyList()返回一个不可修改的列表

public class StackOverflow {

    private List<Car> cars = Collections.emptyList();
公共类堆栈溢出{
private List cars=Collections.emptyList();
您还需要汽车的getter和setter才能从SpringXML使用它。

您可以这样做

<util:list id="emptyList"
           value-type="Cars">
</util:list>

只要您的类(在本例中为StackOverflow)是通过Spring实例化的,您就可以使用autowiring来注入Spring管理的所有汽车类型:

@Autowire
private List<Car> cars;
@Autowire
私家车名单;
我遇到了一个问题。我想当你打开一个集合时,Spring会抱怨,但不要像那篇文章中的示例那样在其中添加任何项目。如果这不起作用,请尝试下面的一个。它对我的
util:set
有效

<util:list id="emptyList" value-type="Cars"/>


您可以使用'questions',而不是'cars'变量:)@Autowire注释(如上所述)将引发异常,我们需要在applicationContext.xml文件中定义链接中提到的列表
<util:list id="emptyList" value-type="Cars"/>