Ich schrieb eine einzige statische Instanz in Java:Verschiedene Java API verwenden unterschiedliche statische Speicher?
public class SocketMap {
private static SocketMap instance = new SocketMap();
public static SocketMap getInstance(){
return instance;
}
static Map<String, Socket> socketMap = new HashMap<>();
public static Map<String, Socket> getSocketMap() {
return socketMap;
}
}
und Verwendung:
public Socket getConnection(String token, String signKey) {
synchronized (lock) {
if (SocketMap.getSocketMap().containsKey(signKey)){//single api will went here
return SocketMap.getSocketMap().get(signKey);
}
else {//second api will went here first
//todoSocket
SocketMap.getSocketMap().put(signKey, socket);
System.out.print("new Socket");
return socket;
}
}
}
// Es funktioniert gut, wenn ich eine einzelne api getConnection method.But verwenden rufen nach // ich eine andere nennen api mit gleichem signKey, SocketMap zeigt nichts.
Es ist mein Fehler.Ich habe den Socket zweimal nach der Trennung entfernt, nur ein statischer Speicher ist die Wahrheit.
I‘ Ich stimme, um diese Frage als Off-Thema zu schließen, weil der Benutzer seine eigenen Fragen beantwortet (letzte Zeile) –