解决方案 »

  1.   

    这代码会报错吧, map.get("");获得是Integer类型的null然后做转型是会报错的吧
      

  2.   

     int a = map.get("");---->Integer a= map.get("");
      

  3.   

    出乎意料,报的是 Exception in thread "main" java.lang.NullPointerException 
      

  4.   

    Exception in thread "main" java.lang.NullPointerException
    at Show.main(Show.java:12)
    出乎意料
      

  5.   

    有什么好奇怪的!System.out.println(map.containsKey(""));
    你去key之前,不判断map中有没有这个key吗?
      

  6.   

    自动拆箱之前检查map.get("")是否为null,否则NullPointer。
      

  7.   


    Map<String,Integer> map = new HashMap<String,Integer>();
    if(map == null){
    System.out.println("map is null");
    }else{
    Integer a = map.get("");
    System.out.println(a);
    }这段代码输出nullMap<String,Integer> map = new HashMap<String,Integer>();
    if(map == null){
    System.out.println("map is null");
    }else{
    int a = map.get("");
    System.out.println(a);
    }这段代码报错:Exception in thread "main" java.lang.NullPointerException
    at Test.main(Test.java:11)
      

  8.   

    你写的代码有点纠结啊。
    1.int要改成Integer的,因为要跟map中的value值类型相匹配
    2.map判断是否为空不是用==null判断的,map在new出来之后本身就相当于一个容器,只是里面没装东西而已,而且map有判断是否为空的方法:isEmpty()
      

  9.   

    你的map有""这个key吗?没有的话就报NullPointer,有的话,因为获取到的是Integer,你又使用了int,自动拆箱后的结果是int,所以会输出int
      

  10.   

    int a = map.get(""); 
    map.get("")此句得到的值为null
    再将null 转为int的过程时报出的空指针