那你要看你hm是否有这个key了。

解决方案 »

  1.   

    hashmap的get()方法,参数必须先以前存在HashMap中,否则返回的将是null~你传入进去的test值,先前如果没有put进HashMap中的话,那么返回的话肯定是null啦
      

  2.   

    这两种方式没有区别的,map中没有这个key就获取不到的。
    debug试试吧
      

  3.   

    已经debug了,hm中是有这个key的
    debug的时候也能看到传进来的uid的值是“2”,但是get之后得到的是null,
    如果用test这个String作为参数传进来,就可以得到“2”所对应的clientThread。
      

  4.   

    你这个map的key不是定义的string类型吗 所以你用get方法参数传入的也必须是string丫 不然传int进入 那肯定找不到那个key 因而找不到你要的值 返回肯定是空值
      

  5.   

    感觉6#说得对,应该就是int和String的区别,你可以把String uid改成int uid,然后传入参数2,验证一下是不是这个问题
      

  6.   

    根据你的描述,这是不可能发生的事情!
    我觉得肯定传入的参数和实际的key是不一样子的,比如前后空格之类的
      

  7.   

    很想看下,楼主的程序是如何在使用addClientThread和getClientThread,这两个函数的。
      

  8.   

    test.equals(uid)打印一下不就知道了。
      

  9.   

    uid的直接传递是什么意思????是直接传递"2"clientThread sc = (clientThread)hm.get(2);
    还是通过获取某个变量来传递?还是等客户端或者服务端反馈的值作为传递?这些你都没有说清楚,你传递的uid的值肯定是存在问题的!没有完整代码,只能这么分析!
      

  10.   

    你直接用key取的时候是传的2还是“2”啊?
      

  11.   

    传递 uid+"" 给get方法,应该可以。