当前位置: 首页 > 知识库问答 >
问题:

关于ArrayList和通用类型[复制]

班玉堂
2023-03-14

1.第一:两者的区别是什么

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

2.第二:

如果我这样声明我的列表:

ArrayList myList = new ArrayList<Integer>();

为什么这仍然有效:myList。添加(“字符串!!”

但不适用于此声明:

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

共有2个答案

周鸿云
2023-03-14

关于你的第一个问题:

两者的区别是什么

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

没有区别。在第二种情况下,让编译器通过类型推断来决定类型。

关于你的第二个问题:

如果我这样声明myList:

ArrayList myList = new ArrayList<Integer>();

为什么这仍然有效:myList。添加(“字符串!!”

但不适用于此声明:

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

在第一种情况下,您使用的是原始类型。这有点像使用Object作为泛型类型,只是更糟。您放弃了所有编译时类型检查,因此您将在示例中遇到Exctive

薄鸿远
2023-03-14

前两个没有区别,第二个是java 7中添加的第一个的简短版(我想)

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

当您声明它为ArrayList myList时,它就知道这个列表在编译时只能有整数,编译失败。

 类似资料:
  • 问题内容: 在常规数组列表初始化中,我们习惯于如下定义泛型类型, 但是,如果是ArrayLists的ArrayList,我们如何定义其通用类型? 数组列表的数组列表代码如下: 只需共享语法,如果有人对此有想法。 问题答案: 你可以做 如果您需要一个列表数组,可以执行 并安全地忽略或禁止该警告。

  • 问题内容: 最近,我读了一段对我来说似乎很奇怪的代码。众所周知,在需要使用集合时,需要初始化它们的泛型类型。此外,我们知道集合可以包含集合作为其元素。 代码: 我的问题是 我们为什么要使用它来创建对象,因为我们没有为集合提供元素的实际类型。 为什么我们要使用集合“结果”添加到集合中,而“结果”只是一个简单的集合。我们没有把它定义为一个的 问题答案: Java通用集合没有存储类型,以确保与J2SE

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 刚开始学习java大约一个月,我对arraylist和oop有几个问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 刚开始学习java大约一个月,我有几个关于arraylist和oop的问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • Navicat 提供了各种不同的图表类型,因此你可以以有意义的方式显示数据。 以下是可用图表类型的完整列表: 垂直条形图 垂直堆积条形图 水平条形图 水平堆积条形图 折线图 面积图 堆积面积图 条形图和折线图 堆积条形图和折线图 饼图 圆环图 散点图 热图 树状图 值 趋势 KPI 表 数据透视表 控件

  • Navicat 提供了各种不同的图表类型,因此你可以以有意义的方式显示数据。 以下是可用图表类型的完整列表: 垂直条形图 垂直堆积条形图 水平条形图 水平堆积条形图 折线图 面积图 堆积面积图 条形图和折线图 堆积条形图和折线图 饼图 圆环图 散点图 热图 树状图 值 趋势 KPI 表 数据透视表 控件