在@PostConstruct
方法中使用此类型的代码行:
listA = myService.getMylist();
所以如果我们在托管bean(JEE应用程序)中的@PostConstruct
方法中使用它,你会给我什么建议:
因为当我测试我的应用程序时,我的数据库已满,但是当我将它交付时,db必须为空,并且管理员将更新de DB。所以当然会有一些例外。
答案 0 :(得分:1)
在几乎所有情况下,最佳做法是在没有元素而不是仅将引用指向null的情况下初始化空集合。因此,如果您正在设计服务层,则不要返回空集合 - 而是返回空集合。此外,如果这是您的设计的必要条件,列表不能为空(这意味着它是一个不可接受的条件),您必须抛出一个错误来指示无效条件并停止bean的初始化。
答案 1 :(得分:0)
这取决于您的设置。只要处理任何异常,两者都是合适的。对于每个项目,这可以简单地遍历List,如果没有项目(或者为null),则不对该对象执行任何操作。如果它是一个实际的错误状态,没有项目返回(即页面无法在没有该项目的情况下运行),则抛出异常。
也许最好将异常抛出到从数据库获取数据的代码中(例如在服务方法中,而不是DAO,或者你拥有的任何等效代码)?这样您就可以从托管bean中删除功能,并可以在框架内处理它。或者更适合使用List集合,只需确保在返回之前对其进行实例化。 (即List<Object> listA = new ArrayList<Object>; ...*populate list* .... return listA;
)然后当你迭代时,什么都不会被调用。