关于Guava ForwardingMap

2020-09-10 23:21:22 浏览数 (1)

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的具体实现。

0 人点赞