java泛型的问题 一个泛型类 如果要实例化他 肯定是这样创建对象 Class<Object> c = new Class<Object>
但是HashMap<K,V>这个类也是泛型类为什么这样实例化他也不会报错Mapm=newHashMap();.m.put("a","aaa");m是个泛型类的对象不是应该...
但是 HashMap<K,V> 这个类也是泛型类 为什么这样实例化他也不会报错
Map m=new HashMap();.
m.put("a", "aaa");
m是个泛型类的对象
不是应该这样实例化吗
Map<String,Object> map=new HashMap<String,Object>();
不是当声明或者实例化一个泛型的对象时,必须指定类型参数的值吗 展开
Map m=new HashMap();.
m.put("a", "aaa");
m是个泛型类的对象
不是应该这样实例化吗
Map<String,Object> map=new HashMap<String,Object>();
不是当声明或者实例化一个泛型的对象时,必须指定类型参数的值吗 展开
2个回答
展开全部
虽然是泛型的,但你也可以不指定具体的类型,如果你不指定具体类型,默认可以使用任何类型(但基本类型除外),只不过不指定具体类型,会造成数据不一致性,因此在开发时为了便于数据的操作,通常指定具体类型。
追问
嗯 谢谢 懂了一点了 那要像这样Map m=new HashMap();. 我没指定具体类型 那我m.put("a", "aaa");的时候是不是自动的K和V就成了String类型了
追答
嗯,对啊,这是java的一种隐式转换机制。。不过如果指定了具体类型的话,效率会提高很多,让代码易于管理。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询