小弟想将多个socket放入HashMap中,并赋予不同的key。但是发现再将socket读取出来之后,其已不具备socket的功能了,比如说socket.close()。不知这是为何?是不是HashMap自动将value转为String了?如果要达到目的,该如何办呢?
困惑中,望各位帮帮忙!先谢了!

解决方案 »

  1.   

    相关代码如下:
    public void quit() throws IOException
        {
            
            Collection v = sm.values();
            Iterator it = v.iterator();
            while(it.hasNext())
            {
                (Socket)it.next().close();
            }
            listener.close();
        }没有效果
      

  2.   

    (Socket)it.next().close(); 
    改成这样
    ((Socket)it.next()).close(); 
    再试试.
      

  3.   

    读取出来的类型是通用Object类型,造型一下就可以了。
    如果兄弟你能保证存放数据是一样的,读取出来又不想类型转换,在JDK1.4中已经增加摸板功能了。可以使用摸板啊!
      

  4.   

    to mylzw(芃) 
    谢谢,问题按你所说的解决了to louisqiang(tenwin) 
    你所说的模板功能是什么意思?是不是java中也有类似于c++中的template方式?能否给些详细解释?谢谢!