关于Guava ForwardingMap
ForwardingMap是什么?
ForwardingMap 是一个装饰器
负责把所有的map操作转发到所代理的map。
操作转发是直接的,不经任何中间操作的。
对方法的覆写要慎重,比如关联的put和putAll,必须同时处理。
不保证线程安全
示例:
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的具体实现。