我是个JAVA初学者,刚学习到集合类,教材上有这样一行:
Collection<String> list = new ArrayList<String>();
我感到有点迷惑,Collection是接口,接口不是不能实例化吗?
另外<String>说是泛化成String型,我不太明白,这是个怎么样的过程.<>是什么操作符.哪位前辈给我解释一下这行JAVA语句及其语法.
Collection<String> list = new ArrayList<String>();
我感到有点迷惑,Collection是接口,接口不是不能实例化吗?
另外<String>说是泛化成String型,我不太明白,这是个怎么样的过程.<>是什么操作符.哪位前辈给我解释一下这行JAVA语句及其语法.
楼主【insect_fly】截止到2008-08-02 10:45:15的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:0 每贴平均分数:0
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:1 未结的总分数:0
结贴的百分比:0.00 % 结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=insect_fly
我感到有点迷惑,Collection是接口,接口不是不能实例化吗?
-----------------------------------
父类可以持有子类的引用。
比如:
class A {}
class B extends A {}
那就可以写 A a = new B();
这就是多态思想。
这里其实是一样的
--------------
另外 <String>说是泛化成String型,我不太明白,这是个怎么样的过程. <>是什么操作符.
-----------------------------------------
以前使用集合都是这样来用的,如下:
List list = New ArrayList();
list.add("123");
list.add(new Integer(4));
而当你取出的时候,就要进行强制转换,
而有了泛型后呢,直接指定里面放什么类型。
拿出时就不用强转了。
<>就是个符号。
就这么规定的,使用泛型,就用 <>
o了。。
集合里是不是可以存放不同类型的对象?
经过<String>泛化之后,集合中存放的就是String型对象?
还是当从集合中取出对象时自动转换成String型?
<>范型标识,给了String后,ArrayList中就只能放String类型的对象了
<Integer>,则只能放Integer类型的队象
没看懂呀,new Collection <String>()表示可以实例化接口?
list.add("123");
list.add(new Integer(4)); //这个时候像这样的语句还能够逃过编译器嘛?很显然是不能的,这样减少了在运行过程中强制转换,增强了代码的健壮性。
这么写有什么区别?