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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王小刚 中级黑马   /  2012-4-24 14:37  /  1509 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static final Map<String, String> BEANS = new HashMap<String, String>();
为什么BEANS仍然可以put,如果是String、Integer等基本类型或者他的包装类就无法改值(而且无法编译),告诉为什么呢?

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

2 个回复

正序浏览
老大 我 告诉你一个常识吧   泛型是你可以把方法的参数类型设置为基类  使之能够具备更好的灵活性!
Integer可以 是因为他本身就是一个类  INT不可以因为他是一个基本类型   换句话说 类就是类型 Integer是类 INT非类
OVER

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报




泛型的具体类型限制是受制于前面的声明,而不限于后面new出来的类型,

之所以出现这两种写法,是为了保持兼容性,安全性检查就要自己考虑了。
Map<String, String> BEANS = new HashMap<String, String>();
这种编译的时候类型只能存放String类型,  这个是泛型定义死的,只能存放类型,

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

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