所以我有一个带有一些属性的“Server”类,其中一个是“joinSession”,它是一个布尔值,默认为false。
我有一个二传手和吸气剂,它的效果非常好。但是我的问题是,当超过1个人连接到我的应用程序时(有时会导致setter函数将“joinSession”变为true),它们相同以共享joinSession的值...所以如果client2将其更改为true,则client1谁应该仍然具有默认的假值,实际上也变为真......
如果这没有意义并且您需要查看代码,请告诉我。感谢
代码:(由于NDA,许多无关的代码已被删除)
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;
}
}
答案 0 :(得分:1)
我认为您的joinSession
是一个静态字段,因此它属于您的服务器类,每个人都在更改它。您不应该这样做,因为静态字段属于类而不属于对象。如果每个人都需要此字段,则不应将其设置为静态。这将解决您的问题。