gpt4 book ai didi

java - 初始化没有对象类型的数组列表 - JAVA

转载 作者:行者123 更新时间:2023-11-30 02:18:57 25 4
gpt4 key购买 nike

这个问题不是关于为什么我们将列表初始化为接口(interface)而不是实现,例如

List<myObject> obj = new ArrayList<myObject>();

问题是以下两者之间有什么区别以及为什么它们(显然)以相同的方式工作?

//list and arraylist both have a type
List<myObject> obj = new ArrayList<myObject>();

//arraylist does not have a type
List<myObject> obj = new ArrayList<>();

最佳答案

两段代码是等效的并创建 ArrayList具有类型(在您的示例中为myObject):

List<myObject> obj = new ArrayList<myObject>();
List<myObject> obj = new ArrayList<>();

但是,第二个示例使用 Java 7 中引入的菱形运算符 ( <> )。它添加了类型推断并减少了赋值中的冗长性。

<小时/>

请参阅 documentation 中的以下引用:

You can replace the type arguments required to invoke the constructor of a generic class with an empty set of type parameters (<>) as long as the compiler can infer the type arguments from the context. This pair of angle brackets is informally called the diamond.

For example, consider the following variable declaration:

Map<String, List<String>> myMap = new HashMap<String, List<String>>();

In Java SE 7, you can substitute the parameterized type of the constructor with an empty set of type parameters (<>):

Map<String, List<String>> myMap = new HashMap<>();

关于java - 初始化没有对象类型的数组列表 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47413609/

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