我正在学习Spring,并且我阅读了Spring in Action一书。我想知道你是否应该注入一个空的arraylist(如果可能)或者像下面的例子那样创建它?
public class StackOverflow {
private List<Car> cars;
public StackOverflow() {
cars = new ArrayList<Car>();
}
}
答案 0 :(得分:4)
你可以注入一个这样的空列表,但这可能是不必要的,除非你试图设置一个示例模板spring XML配置。
<property name="cars">
<list></list>
</property>
如果您想快速设置空列表以防止空指针问题,那么只需使用Collections.emptyList()。您也可以按照以下方式“内联”。请注意,Collections.emptyList()返回一个不可修改的列表。
public class StackOverflow {
private List<Car> cars = Collections.emptyList();
您还需要汽车的getter和setter才能从spring XML中使用它。
答案 1 :(得分:1)
你可以这样做
<util:list id="emptyList"
value-type="Cars">
</util:list>
有点像
public static interface Car
{
String getName();
}
答案 2 :(得分:1)
我遇到this answer的问题。我猜Spring在你打开一个集合时会抱怨,但是不要在该帖子的示例中添加任何项目。如果这不起作用,请尝试以下方法。这对util:set
来说很有用。
<util:list id="emptyList" value-type="Cars"/>
答案 3 :(得分:-1)
只要您的类(在本例中为StackOverflow)通过Spring实例化,您就可以使用自动装配来注入Spring管理的所有Car类型:
@Autowire
private List<Car> cars;