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

Java泛型新的原始类型vs泛型类型[复制]

翟柏
2023-03-14

我读了很多文章,但我不明白这两行之间的区别:

ArrayList<String> list = new ArrayList();
ArrayList<String> list = new ArrayList<String>();

我看到的唯一区别是第一行触发了“未检查的分配”警告。

共有2个答案

秋向阳
2023-03-14

你可以列一份原始清单。

List list = new ArrayList();

这很好,您现在有了一个原始列表,可以将任何对象放入其中。如果要将该列表分配给键入的版本,则会进行未选中的分配。

List<String> strings = list;

这是因为,放入列表中的内容从未被检查为字符串。

丌官晔
2023-03-14

使用未选中的赋值,可以添加不正确类型的对象。什么会导致RuntimeException。你可以在列表中添加整数。对于类型,这是不可能的。

  ArrayList<String> list = new ArrayList(Arrays.asList(1));
        ArrayList<String> list = new ArrayList<String>(Arrays.asList(1));

第一个被接受,第二个出现编译错误。

 类似资料:
  • 如何获取这个类的类型?对于上下文,我使用ModelMapper,我需要类类型T从S转换为T。 背景: 我已经尝试了N种方法,其中我放置了“//一些方法来获取类型”,但没有任何效果。例如: 或

  • 问题内容: 因此,我正在开发这个通用的HashTable类,并且希望将其通用地用于任何数量的传入类型,并且我还想将内部存储数组初始化为LinkedList的数组(出于冲突目的),其中为确保类型安全,每个LinkedList都被预先指定为HashTable类中的泛型类型。我该怎么做?以下代码最能阐明我的意图,但当然不会编译。 问题答案: Java中的泛型不允许创建具有泛型类型的数组。您可以将数组转换

  • 在下面来自的语法中,泛型类型参数在实例化原始类型数组后用于类型转换,

  • 问题内容: 我目前正在尝试从书中学习如何使用泛型。在本章中,它说取一条数据T并将其转换为整数。我正在Eclipse中尝试不同的方法,但是似乎都不允许这样做。您如何执行以下任务: 然后在另一个类中: 我已经尝试使用和其他一些东西,但似乎没有什么能使Java满意。本书坚持要保持方法的通用性,以防使用浮点数或双精度数代替字符串或整数。 编辑:对于其他人可能有类似的问题。从对这个问题的所有评论和被接受的答

  • 泛型类型 除了反省函数, Swift允许你定义自己的泛型类型. 它们是可以用于任意类型的自定义类、结构体、枚举, 和Array、Dictionary方式类型. 1. 定义泛型类型 定义一个普通的结构体 struct IntStack { var items = [Int]() mutating func push(_ item: Int) { items.appen

  • 我有一个关于Java仿制药的问题。假设我有以下方法: 我如何用通配符<解释上面的类型转换?扩展U>?使用它与只使用有什么区别?