gpt4 book ai didi

带参数和不带参数的 Java 泛型列表和 ArrayList

转载 作者:行者123 更新时间:2023-11-29 06:56:55 25 4
gpt4 key购买 nike

我正在阅读 Java 泛型。我想问一下以下语句之间的区别是什么。

1:List<String> list = new ArrayList(3);

2:List<String> list = new ArrayList<String>(2);

3:List<String> list = new ArrayList<String>();

4a: List<String> list = new ArrayList("A");//为什么我不能使用字符串?

4b:List<String> list = new ArrayList('a');//但 char 工作正常。

我正在阅读 Java Docs on Generics然后我需要问上面的问题,因为我没有得到准确的答案。(可能是因为英语不好)

最佳答案

这与泛型无关。 ArrayList有一个接受 int 的构造函数,代表List的初始容量。 char ( 'a' ) 可转换为 int ,这就是 4b 与 1 和 2 一样工作的原因。没有采用 String 的构造函数, 所以 4a 没有通过编译。

编辑:

使用原始类型(即没有类型参数,如 List<String> list = new ArrayList(3) )实例化类是您不应该做的事情,因为它的类型安全性较低,并且只允许向后兼容。

关于带参数和不带参数的 Java 泛型列表和 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32783401/

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