我知道在java中可以进行以下两种声明和初始化.
List<String> stringList = new ArrayList<String>()
List<String> stringList = new ArrayList()?
Run Code Online (Sandbox Code Playgroud)
但他们之间究竟有什么不同呢?
另外,您更喜欢命名列表变量?你喜欢将它们命名为variableList还是只是变量?或者你有其他方法吗?
Daw*_*ica 11
没有什么区别,虽然第二个会给你一个编译警告.
它们编译为相同的字节码,因为编译器会丢弃有关您使用的类型参数的信息.
问题是ArrayList该类是在泛型之前发明的,所以我们总是必须创建它new ArrayList(),而不指定类型参数.现在使用泛型,我们可以指定将存储在哪种类型的对象中,ArrayList并让编译器检查我们是否正确使用它.这样做的符号就是你在第一个例子中使用的符号.
但是,编译器随后进行的任何检查都是基于变量的类型,而不是您创建的类的类,因此差异将完全没有影响,超过初始编译器警告.
从Java 7开始,编写它的首选方法List<String> stringList = new ArrayList<>();是在早期版本的Java中不能使用这种表示法.
| 归档时间: |
|
| 查看次数: |
1560 次 |
| 最近记录: |