我正在阅读Java Generics.我想问下列陈述之间有什么区别.
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");//为什么我不能使用String?
4b:List<String> list = new ArrayList('a');//但是char工作正常.
我正在阅读关于泛型的Java Docs,之后我需要问上面的问题,因为我没有得到确切的答案.(可能是因为英语不好)
这与泛型无关.ArrayList有一个构造函数,它接受一个int,表示List的初始容量.A char('a')可以转换为int,这就是为什么4b就像1和2一样工作.没有构造函数接受a String,所以4a不通过编译.
编辑:
使用原始类型(即没有类型参数,例如List<String> list = new ArrayList(3))实例化类是您不应该做的事情,因为它不太类型安全,并且仅允许向后兼容.
| 归档时间: |
|
| 查看次数: |
433 次 |
| 最近记录: |