Java钻石操作符无法编译

3
当我尝试使用以下钻石操作符时:
List<DateTimeZone> list = new ArrayList<>();

它完美地运作。

但是,当我尝试这样做:

List<DateTimeZone> list = false ? null : new ArrayList<>();

它无法编译,提示信息为:"不兼容的类型:需要List,但找到了ArrayList"。

为什么会这样呢?


在 Eclipse 中或使用 javac 编译器编译时无法通过编译吗? - Pablo Lozano
也许你有自定义的ListArrayList类(不是来自java.util包)。 - Ilya
1
@Pablo 我用javac测试了一下,出现了相同的错误。 - bcsb1001
1个回答

4

+1,那么我们可以得出结论,条件运算符不能与钻石运算符一起使用? - Suresh Atta
@sᴜʀᴇsʜᴀᴛᴛᴀ 它可以工作,但不适用于Java 7。 - Marko Topolnik
泛型推断最好与Java8一起使用。 - Kumar Abhinav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接