我想使用在另一个类(也是ServerEndpoint)的一个类(websocket ServerEndpoint)中创建的哈希映射。第一类中的哈希图是静态的。为了能够在第二堂课中访问它,我在第一堂课中做了一个吸气剂(这也是静态的)。在第二个类中,我创建了一个实例变量,该变量调用第一个类的getter。我遇到的问题是,仅在重新部署应用程序之后,哈希映射的值才可用。
//头等舱
@ServerEndpoint(value = "/game/{gameId}")
public class GameEndpoint extends WebsocketEndpoint {
private static HashMap<String, User> users = new HashMap<>();
users.put(session.getId(), user);
public static HashMap<String, User> getUsersMap() {
return users;
}
}
//二等舱
@ServerEndpoint(value = "/invite/{userToken}")
public class InviteWebsocketEndpoint extends WebsocketEndpoint{
@OnMessage
public void onMessage(Session session, String json) throws
IOException, EncodeException {
GameEndpoint ge = new GameEndpoint();
HashMap<String, User> users = new HashMap<>(ge.getUsersMap());
}
}