tes*_*dtv 17 java return arraylist
我有我的Java方法如下;
public List<Lookup> findAll(String lang) {
Query query = entityManager.createNamedQuery("Lookup.findAll");
if (isValidLang(lang)) {
query.setParameter("lang", lang);
return query.getResultList();
} else {
//return empty list
}
}
Run Code Online (Sandbox Code Playgroud)
现在该方法返回List以获得有效的lang匹配.
但如果不是这样,我想返回一个空列表.我的问题是如何更新代码以及返回空列表的最佳方法是什么,以便代码不会失败?
Mik*_*kis 31
这应该这样做:
} else {
return Collections.emptyList();
}
Run Code Online (Sandbox Code Playgroud)
Collections.emptyList()返回一个不可变列表,即,如果您想对列表执行任何操作,则不能向其添加元素的列表,然后创建列表的新实例并返回它。
if (isValidLang(lang)) {
query.setParameter("lang", lang);
return query.getResultList();
} else {
return new ArrayList<Lookup>(); // return array list instance.
}
Run Code Online (Sandbox Code Playgroud)
使用Java 9,您现在可以使用静态工厂方法List::of创建一个不可变的空列表:
} else {
return List.of();
}
Run Code Online (Sandbox Code Playgroud)