尝试避免返回NULL时键入安全警告

时间:2012-05-19 16:01:01

标签: java generics type-safety

在Eclipe,Java中,我正在研究一种能够完成大量工作的方法,并且最终需要返回带有参数Element的生成列表。此列表可能为null,在这种情况下,我希望该方法返回一个空列表。这是为了防止在任何地方进行if(list != null)检查,因为语句适用于空列表。

我通过以下方式执行此操作:

return tempList == null ? Collections.EMPTY_LIST : tempList;

然而,这会发出以下警告:

  

类型安全:类型列表的表达式需要未经检查的转换才能确认为List<Element>

Eclipse建议的所有解决方案都不起作用。我猜这个问题是Collections.EMPTY_LIST返回一个通用列表,但不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:7)

使用Collections.emptyList()表示空的,类型安全且不可变的列表。

答案 1 :(得分:7)

如果您真的想避免本地变量声明,请使用此语法。

return elements == null ? Collections.<Element>emptyList() : elements;

答案 2 :(得分:0)

为什么不返回new ArrayList<Element>()