【发布时间】:2014-11-06 02:22:58
【问题描述】:
我有以下简单的代码:
List<XXXXBean> queryPeriodData()
{
if (CollectionUtils.isEmpty(res))
{
return Collections.emptyList();
}
return res;
}
有效。
但是如果我改成这个,就会出现编译错误...
return CollectionUtils.isEmpty(res) ? Collections.emptyList() : res;
错误信息是
“类型不匹配:无法从 List
我不知道这两种方式的区别。
【问题讨论】:
-
我使用了 Eclipse Luna Release 和 jdk 1.7.0_67。
-
使用
return Collections.<XXXXBean>emptyList()确保两个可能值之间的类型兼容性。有关详细讨论,请参阅Collections.emptyList() returns a List<Object>?。 -
Java 8 中的类型推断得到了改进。您的第二个示例现在可以工作了。
-
这是java,和c#没有关系:)
标签: java conditional type-inference ternary-operator