为什么  (string)map.get("j");没有出错
但map.get("j").toString();却出错,我查了,map类的toString也没有重写啊

解决方案 »

  1.   

    map.get("j").toString()虚拟机会默认执行Object的toString()方法.如果你的map.get("j")返回对象重载了toString()方法那么就调用重载的,如果没有就会调用Object的toString()方法.
    Map gao=new HashMap();
    gao.put("j","sadfsdf");
    System.out.print(gao.get("j").toString());
    没有报错,打印了sadfsdf
    祝楼主好运。
      

  2.   

    (string)map.get("j"); 返回的是Object Object是所有类的父类  父类强制转化成子类不会报错
      

  3.   

    楼主抛NullPointerException了楼主的map.get("j") 返回了 null(String) null 是可以的