gpt4 book ai didi

java - List stringList = new ArrayList() 和 List stringList = new ArrayList() 有什么区别?

转载 作者:搜寻专家 更新时间:2023-11-01 01:06:10 25 4
gpt4 key购买 nike

我知道下面的声明和初始化在java中都是可以的。

List<String> stringList = new ArrayList<String>() 

List<String> stringList = new ArrayList()?

但是它们之间到底有什么区别呢?

另外,您更喜欢如何命名列表变量?就像您更喜欢将它们命名为 variableList 还是仅命名为 variables?或者您还有其他方法吗?

最佳答案

确实没有区别,虽然第二个会给你一个编译警告。

它们编译成相同的字节码,因为编译器会丢弃有关您使用的类型参数的信息。

问题是 ArrayList类是在泛型之前发明的,所以我们过去总是必须将它创建为 new ArrayList() , 不指定类型参数。现在有了泛型,我们可以指定将什么类型的对象存储在 ArrayList 中。并让编译器检查我们是否正确使用它。这样做的符号是您在第一个示例中使用的符号。

但是编译器随后所做的任何检查都是基于变量的类型,而不是您所创建的类,因此除了最初的编译器警告之外,差异将完全没有影响。

从 Java 7 开始,首选的写法是 List<String> stringList = new ArrayList<>();但此表示法在早期版本的 Java 中不可用。

关于java - List<String> stringList = new ArrayList<String>() 和 List<String> stringList = new ArrayList() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22875993/

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