我的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
}
}
现在,该方法返回列表以获取有效的 lang 匹配项。
但如果不是这样,我想返回一个空列表。我的问题是如何更新代码以及返回空列表以使代码不会失败的最佳方法是什么?
原文由 copenndthagen 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您使用的是 Java 9 或更高版本:
如果你坚持使用 9 之前的某个版本的 java:
笔记:
List.of()
或Collections.emptyList()
返回的列表是秘密不可变的。我所说的“秘密地”是指它公开了变异方法,但是如果您错误地调用了这些方法中的任何一个,您将遇到运行时异常。在其他比 Java 更好的语言中(例如,在 Scala 中)存在不可变/不可修改的集合,但 Java 没有“开箱即用”的东西。因此,如果您在 2020 年坚持使用 Java,那么您就接受了并非所有集合都可以写入的可能性,尽管它们看起来都可以写入。