gpt4 book ai didi

java - 关于 ArrayList 和泛型类型

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:49 26 4
gpt4 key购买 nike

<强>1。第一:有什么区别

ArrayList<Class> myList = new ArrayList<Class>();
ArrayList<Class> myList = new ArrayList<>();

<强>2。第二:

如果我像这样声明 myList:

ArrayList myList = new ArrayList<Integer>();

为什么这仍然有效:myList.add("A String!!");

但是使用此声明:

ArrayList<Integer> myList = new ArrayList<>();

最佳答案

前两者没有区别。第二个是 java 7 中添加的第一个的简短版本(我认为)

在第二件事中,你声明了一个通用的java列表(声明没有说它是整数列表)。然后为该变量提供一个 ArrayList 的实例。这是你要做的事情,不在声明中。这就是代码编译的原因(您可以添加一个字符串,因为数组列表的实例可以是任何内容)。但它会在运行时失败,因为在当前运行中,实例是整数列表。

当您将其声明为 ArrayList myList 时,它就知道编译时该列表只能包含整数并且编译失败。

关于java - 关于 ArrayList 和泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48077592/

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