4

在 Ecipe,Java 中,我正在研究一种方法,它可以做很多事情,最后需要返回一个带有参数 Element 的生成列表。此列表可能为 null,在这种情况下,我希望该方法返回一个空列表。这是为了防止if(list != null)在任何地方都需要检查,因为 for 语句使用空列表。

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

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

然而,这给出了以下警告:

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

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

4

3 回答 3

7

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

return elements == null ? Collections.<Element>emptyList() : elements;
于 2012-05-19T16:14:35.667 回答
7

用于Collections.emptyList()空的、类型安全的和不可变的列表。

于 2012-05-19T16:02:39.203 回答
0

你为什么不直接回来new ArrayList<Element>()

于 2012-05-19T16:17:10.017 回答