例如:
Object o1 = new ArrayList<String>();
Object o2 = new ArrayList<String>(){};
Object o3 = new ArrayList<String>(){{}};
Run Code Online (Sandbox Code Playgroud)
有什么不同?
我不能谷歌java的第2 /第3语法,任何参考?
Pet*_*rey 25
第一个创建一个ArrayList
第二个创建ArrayList的匿名子类,它具有特定的泛型类型的String
第三个是相同的,但它有一个空的初始化块.
注意:如果可能的话,您应该编写最简单,最清晰的代码,尤其是在考虑性能的情况下.
nac*_*okk 13
Object o1 = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
创建一个ArrayList.
Object o2 = new ArrayList<String>(){};
Run Code Online (Sandbox Code Playgroud)
在这里,您将创建一个扩展的匿名类,ArrayList<String>不会覆盖任何内容.所以区别在于你是在没有覆盖行为的情况下继承ArrayList,如果你没有充分的理由,就不要这样做.
Object o3 = new ArrayList<String>(){{}};
Run Code Online (Sandbox Code Playgroud)
你创建的是2,但是有一个空的initalizer块.
| 归档时间: |
|
| 查看次数: |
1058 次 |
| 最近记录: |