遇到一个有趣的现象
public class LoginUser {
public static ConcurrentMap<String, Object> map = new ConcurrentHashMap<>();
public void login(String userName, Message msg){
map.put(userName, msg);//向map中存入值
}
}
public class User {
public void onDisconnect(String userName, Message msg){
ConcurrentMap map = LoginUser.map;
for (Object o : map.keySet()) {
Message c = (Message)map.get(o); //这里从map中获取到的Message值会根据传入的Message的值改变,因为是Map的浅拷贝?
}
}
}
什么时候可以这样使用呢?
当我们存放Map键值对时,不知道键为多少,但是知道值,并且得到的是改变后值的信息。可以这样使用?
遇到这个有趣的现象,先记录一下,后续研究,欢迎留言赐教。