关于Guava ForwardingMap

时间:2022-07-24
本文章向大家介绍关于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的具体实现。