开发者社区 问答 正文

java单例模式传参问题

sshexec连接linux
ConnBean connInfo = new ConnBean(remoteAddress, userName, password);
SSHExec sshExec = SSHExec.getInstance(connInfo); 假设每次传过来的conninfo参数是变的,但是debug查看每次都是第一次的参数。

private static SSHExec ssh;
public static SSHExec getInstance(ConnBean conn)
{
if(ssh == null)
ssh = new SSHExec(conn);
return ssh;
}

这个该怎么处理?

展开
收起
蛮大人123 2016-06-02 17:47:54 4717 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    if(ssh == null)
    ssh = new SSHExec(conn);
    return ssh;
    }

    所以每次都返回第一次生成的instance啊。
    如果你的场景是有很多remoteAddress,那么这个public static SSHExec getInstance(ConnBean conn)方法修改下,里面用一个hashMap来存已经初始化的实例。
    类似

    if(map.get(conn.getRemoteAddress)==null){
    xxxxx
    }
    2019-07-17 19:25:26
    赞同 展开评论
问答分类:
问答标签:
问答地址: