我正在使用并发哈希表,当出现jms消息时会填充它。只要有相同的键进入,就必须重写它。
现在我面临的问题是:地图始终是空的。因此,每次添加条目而不是覆盖条目。
不确定我在做什么错。请仔细阅读代码并为我提供帮助。
public class Dispatcher{
private static ConcurrentHashMap<String, Executor> map= new ConcurrentHashMap<>();
public dispatch(String key, String message) {
if(map.containsKey(key)){ //this always returns false. Printed to check and it is empty.
//rest of the code
}else{
map.put(key,new Executor(message));
//rest of the code
}}
public class MsgListener implements SessionAwareListener {
Dispatcher dispatcher = new Dispatcher();
public void onMessage(javax.jms.Message, Session session) {
//Rest of the code
dispatcher.dispatch(key,msg);
}}
用于测试的输入:
锁定1-消息1
锁定1-消息2
锁定2-消息3
Lock3-消息4
调度程序类在调用类内部仅实例化一次。我已经测试过,发现可以打印相同的对象。