在Eclipe,Java中,我正在研究一种能够完成大量工作的方法,并且最终需要返回带有参数Element的生成列表。此列表可能为null,在这种情况下,我希望该方法返回一个空列表。这是为了防止在任何地方进行if(list != null)
检查,因为语句适用于空列表。
我通过以下方式执行此操作:
return tempList == null ? Collections.EMPTY_LIST : tempList;
然而,这会发出以下警告:
类型安全:类型列表的表达式需要未经检查的转换才能确认为
List<Element>
。
Eclipse建议的所有解决方案都不起作用。我猜这个问题是Collections.EMPTY_LIST
返回一个通用列表,但不知道如何解决这个问题。
答案 0 :(得分:7)
使用Collections.emptyList()
表示空的,类型安全且不可变的列表。
答案 1 :(得分:7)
如果您真的想避免本地变量声明,请使用此语法。
return elements == null ? Collections.<Element>emptyList() : elements;
答案 2 :(得分:0)
为什么不返回new ArrayList<Element>()
?