class MyTest
{
     private String a;
     private String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
public class Test
{
public static void main(String[] args)
{
Map map = new HashMap();
MyTest test = new MyTest();
test.setA("aaa");
test.setB("bbb");
map.put("0", test);
map.put("1", test);
   System.out.println("0000000000000000000000000 = " + ((MyTest)map.get("bbb")).getB()); }}
为什么会出现
Exception in thread "main" java.lang.NullPointerException
at com.dhc.business.test.Test.main(Test.java:36)的结果

解决方案 »

  1.   

    map.get("bbb") --> map里没有"bbb"这个对象。
      

  2.   

    楼主我教你怎么贴代码:
    1、将代码进行良好的格式化,以方便阅读。
    2、在发帖文本框的上方单击“#”按钮,选择 Java
    3、将代码粘贴到【code=Java】和【/code】之间。发出来的帖子就会是下面的效果:public class Hello {    // 程序入口
        public static void main(String[] args) {
            System.out.println("Hello!");
        }
    }
      

  3.   

    map.get("bbb")我怎么没看到你put 这个 bbb 啊?当然你get是返回的就是null 了。
    你可以
    map.get("1")
      

  4.   

    public class Hello {
    // 程序入口
    public static void main(String[] args) {
    System.out.println("Hello!");
    }
    }
      

  5.   

    这个问题。你map.get("bbb")返回的是空也就是NULL值。
    但是你在用这个NULL值去得到B属性的时候会发生空值真异常。
    可以这样写:public static void main(String[] args) 

    Map map = new HashMap(); 
    MyTest test = new MyTest(); 
    test.setA("aaa"); 
    test.setB("bbb"); 
    map.put("0", test); 
    map.put("1", test); 
    if(null != map.get("bbb")){
    System.out.println("map:test"+(MyTest)map.get("bbb").getB());
    }} } 
      

  6.   

    map的方法是get(Object key) 返回的是指定键所映射的值 
    你的get("bbb")  你并没有放入这个键 所以返回null
    然后调用 null 对象的实例方法所以出现java.lang.NullPointerException; 
      

  7.   

    map.get()是通过 指定的Key取value值的...你在map里放2个test对象...key是0和1.... 而后面map.get("bbb")这里的"bbb"是什么啊??
    bbb不是test的属性B 设置的么
      

  8.   

    public static void main(String[] args) {
    System.out.println("Hello Java");
    }
      

  9.   

    当你在调用方法的时候请看清楚后面所取的参数是什么类型或者是什么意思!在API里面明确的可以看到public V get(Object key),说明在这个get方法里面需要设的参数是一个KEY值,而你在里面写了一个value值,人家要苹果,你给个苹果醋,好像说不过去
      

  10.   


    map.get("bbb")不存在!
    顺便测试一下!public static void main(String[] args) {
            System.out.println("Hello Java");
        }
      

  11.   

    上面大家已经说得差不多了,就是:
      (MyTest)map.get("bbb")).getB(); 这句话有误,你把这句话修改一下就好了不能写mat.get("bbb")
      

  12.   

    去掉System.out.println("map:test"+(MyTest)map.get("bbb").getB());中的“.getB()”
    并在“MyTest类中添加一个
    public String toString(){
       return b;
    }”
    在测试中打印出“0000000000000000000000000 = bbb”
    不知道这是不是你想要的结果,