A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 快乐的黑马 中级黑马   /  2014-1-10 11:13  /  1083 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题:为什么这么做都行?Collecton里面不是要装同一类型元素吗?

import java.util.ArrayList;
import java.util.Collection;
public class GenericTest {
       
        public static void main(String[] args) {
               
               
               
                Collection cos = new ArrayList();
               
                cos.add("haha");
               
                printCollection(cos);
               
        }
        public static void printCollection(Collection<Object> cols){
                cols.add(12);
                for(Object obj : cols ){
                        System.out.println(obj);
                }
                cols.add(12);
        }

}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

3 个回复

倒序浏览
如果把12当做字符串是不是就可以看做是一种数据类型了
回复 使用道具 举报
由于JDK1.5的新特征具有自动打包功能,把12当做Integer对象装入里面,你接收的是Object,整型也属于Objectl类型的子类所以可以装进去
回复 使用道具 举报
Collection<Object> cols你给集合加了泛型Object类型的。
因为在JDK1.5新特性中有自动装箱功能,所以Integer和String类型都属于Object类型

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马