ForwardingMap是什么?
ForwardingMap 是一个装饰器
负责把所有的map操作转发到所代理的map。
操作转发是直接的,不经任何中间操作的。
对方法的覆写要慎重,比如关联的put和putAll,必须同时处理。
不保证线程安全
示例:
代码语言:javascript复制Map map = new HashMap();
ForwardingMap fmap = new ForwardingMap() {
@Override
protected Map delegate() {
return map;
}
};
fmap.put("a", 111);
fmap.put("b", 222);
fmap.put("c", 333);
System.out.println(fmap.entrySet());
输出:
[a=111, b=222, c=333]
为什么要用ForwardingMap?
如上示例,对于使用ForwardingMap的主体,可以不用考虑多代理的Map的具体实现。