黑马程序员技术交流社区

标题: 问一个基础java问题 [打印本页]

作者: 王小刚    时间: 2012-4-24 14:37
标题: 问一个基础java问题
public static final Map<String, String> BEANS = new HashMap<String, String>();
为什么BEANS仍然可以put,如果是String、Integer等基本类型或者他的包装类就无法改值(而且无法编译),告诉为什么呢?


作者: 毕博    时间: 2012-4-24 14:58




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

之所以出现这两种写法,是为了保持兼容性,安全性检查就要自己考虑了。
Map<String, String> BEANS = new HashMap<String, String>();
这种编译的时候类型只能存放String类型,  这个是泛型定义死的,只能存放类型,
作者: 应佳锋    时间: 2012-4-24 15:46
老大 我 告诉你一个常识吧   泛型是你可以把方法的参数类型设置为基类  使之能够具备更好的灵活性!
Integer可以 是因为他本身就是一个类  INT不可以因为他是一个基本类型   换句话说 类就是类型 Integer是类 INT非类
OVER





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2