()); 在jdk7 box.addAll(new -6ren">
gpt4 book ai didi

java - 通用jdk7和jdk8有什么区别?

转载 作者:行者123 更新时间:2023-12-02 07:48:48 24 4
gpt4 key购买 nike

List<String> box = new ArrayList<>();
box.add("small");
box.addAll(new ArrayList<>());

在jdk7 box.addAll(new ArrayList<>()) will不会被编译,但是在jdk8中是会

任何人都可以帮助我了解 Generic 中 jdk7 和 jdk8 之间的区别吗?

最佳答案

不同之处在于 Java 8 引入了多表达式

这些表达式的类型尚未确定,但由表达式使用方式的上下文确定。

new ArrayList<>()是一个多表达。就其本身而言,它可以是具有任何元素类型的列表:编译器在决定类型之前“等待并查看”。

Java 7 不支持多重表达式。它会考虑new ArrayList<>()成为new ArrayList<Object>() ,因此与 box.addAll 不兼容.

如果没有多重表达式,lambda 和流将会变得非常尴尬。

关于java - 通用jdk7和jdk8有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59818799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com