zoukankan      html  css  js  c++  java
  • map泛型 map不指定泛型 与 Map<Object,Object>的区别

    map泛型 map不指定泛型 与 Map<Object,Object>的区别


    
    private void viewDetail(){
    	Map map1 = new HashMap();
    	Map<String,Object> map2 = new HashMap<String,Object>();
    	Map<Object,Object> map3 = new HashMap<Object,Object>();
    	Map<String,String> map4 = new HashMap<String,String>();
    	test1(map1);
    	test1(map2);
    	test1(map3);	//编译错误
    	test1(map4);	//编译错误
    }
    
    private void test1(Map<String,Object> map){
    }
    
    

    在泛型这里 Object 就只表示Object 不能表示所有对象

    因为泛型是保证编译时你给的实际类型和参数声明的类型一致,它的意义就在于此,不需要解释,这是需要你学习的规则而已。

    那为什么map1就可以呢,这里有历史原因,因为泛型是后加入的,早期的版本没有,但是java的开发者希望不能因为加入泛型就要修改成千上万的现有应用,所以默认他可以通融老版本不加泛型的变量,但是编译时一定会有提示你有危险代码的。

    正因为这样,泛型非常的好破,随便写点代码就可以让编译通过,而运行时错误,所以现在开发,一定要使用一种代码,千万不要两者都用,那样太危险,如果你用了泛型,就全部都用,切记切记

  • 相关阅读:
    团队项目前期冲刺-5
    团队项目前期冲刺-4
    团队项目前期冲刺-3
    团队项目前期冲刺-2
    团队计划会议
    团队项目前期冲刺-1
    大道至简阅读笔记01
    软件工程第八周总结
    梦断代码阅读笔记03
    小组团队项目的NABCD分析
  • 原文地址:https://www.cnblogs.com/zhuhui-site/p/10037753.html
Copyright © 2011-2022 走看看