Java:最好将实体中的列表初始化为null或空列表

时间:2016-06-19 10:29:29

标签: java list arraylist eclipselink

在此示例http://www.vogella.com/tutorials/JavaPersistenceAPI/article.html#jpaintro_entitymanager中,如果实体具有@OneToMany关系。列表在声明中初始化如下:

@OneToMany(mappedBy = "family")
private final List<Person> members = new ArrayList<Person>();

我以前没有在我的代码中初始化实体列表,并且总是要检查是否为null。所以我的问题是:在声明中将列表(关系)初始化为空列表是正常需要做什么还是什么?为什么?

我目前正在做什么

private final List<Person> members

2 个答案:

答案 0 :(得分:1)

一般来说&#34; null&#34;和&#34;空&#34;即使jpa的行为保持不变,也有不同的含义。 Null表示它从未初始化,而空表示没有条目。因此,如果您需要处理不同的2个案例,您可以这样做,如果不是,那么无论您走哪条路都无关紧要。例如,null可以表示您从不加载所需的数据,并且可以在检查null之后加载它。虽然&#34;空&#34;表示您已加载数据,但没有条目

答案 1 :(得分:0)

理想情况下,您应根据应用程序逻辑决定是将此列表保留为空还是为空。 null的一个缺点是,在您不希望此列表为null的位置,您必须在应用程序代码中添加额外的空值检查。 一种更好的方法是使用集合初始化列表。 EMPTY_LIST。