有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Maven或Tomcat重写我的Java类属性

所以我有一个带有一些属性的“服务器”类,其中一个是“joinSession”,它是一个布尔值,默认为false

我有一个二传手和一个接球手,效果非常好。然而,我的问题是,当超过一个人连接到我的应用程序时(这有时会导致setter函数将“joinSession”变为true),他们会共享joinSession的值。。。因此,如果client2将其更改为true,那么应该仍然具有默认false值的client1实际上也将变为true

如果这不合理,您需要查看代码,请告诉我。谢谢

代码:(由于保密协议,许多未提交的代码已被删除)

public class TunnelServlet {

    Server server = new Server("MY_PATH", "MY_JWT");
    if (request.getParameter("joinSession").equals("true") {
        server.setJoinSession(true);
    }

    System.out.println(server.getJoinSession);
}

还有我的服务器类

public class Server {
    private static String path;
    private static String JWToken;
    private static boolean joinSession;

    Server( String domain, String token ) {
        path = "http://" + domain + ":8000/" ;
        JWToken = token;
    }

    public void setJoinSession(boolean isJoinSession) {
        joinSession = isJoinSession;
    }

    public boolean getJoinSession() {
        return joinSession;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    我认为joinSession是一个静态字段,因此它属于您的服务器类,每个人都在更改它。您不应该这样做,因为静态字段属于类而不是对象。如果每个人都需要此字段,则不应将其设置为静态。这会解决你的问题