zoukankan      html  css  js  c++  java
  • Guava Cache -- MapMaker.makeComputingMap测试

    canal中很多处使用了MigrateMap.makeComputingMap(Function<? super K, ? extends V> computingFunction)方法,第一次接触这个方法,之后简单的测试了一下,大致知道了其作用。
    package com.company;
    
    import com.google.common.base.Function;
    import com.google.common.collect.MigrateMap;
    
    import java.util.concurrent.ConcurrentMap;
    
    
    /**
     * @author chenjunjie
     * @since 2018-9-26
     */
    public class GoogleColTestMain {
        /**
         * @param args
         */
        public static void main(String[] args) {
            // makeComputingMap方法:根据this,创建一个NullComputingConcurrentMap或ComputingConcurrentMap。
            ConcurrentMap<String, String> testMap =  MigrateMap.makeComputingMap(new Function<String, String>() {
                /**
                 * 这里就是绑定的根据key没找到value的时候触发的function,
                 * 可以将这里的返回值放到对应的key的value中!
                 * @param arg0
                 * @return
                 */
                public String apply(String arg0) {
                    return "create:" + arg0;
                }
    
            });
    
            testMap.put("a", "testa");
            testMap.put("b", "testb");
    
            System.out.println(testMap.get("a"));
            System.out.println(testMap.get("b"));
            System.out.println(testMap.get("c"));
            System.out.println(testMap.get("d"));
    
            /**
             * 总结:
             * 运行结果可以知道,当map再调用get的时候如果根据key值获取不到value时,会触发function,执行apply方法。
             */
        }
    }
    

    测试结果:

    "D:Program FilesJavajdk1.8.0_181injava.exe" ...
    testa
    testb
    create:c
    create:d
     
    Process finished with exit code 0
     
     
    从运行结果可以知道,当map再调用get的时候如果根据key值获取不到value时,会触发function,执行apply方法,并获取apply返回的值。
     
     

  • 相关阅读:
    [Java]内部类
    [Java]项目经验之谈
    [IDE]Netbeans
    [HTML5游戏开发]开发者如何真正的面向HTML5平台开发游戏?
    [HTML5游戏开发]两款很棒的 HTML5 游戏开发工具
    [HTML5游戏开发]HTML5游戏让你惊喜吗?
    How To Design A Mobile Game With HTML5
    [WebSimpleDB]HTML5之IndexedDB使用详解
    [HTML5]WAI-ARIA介绍
    [MiniPro]Android GPS-从上到下整个框架剖析与案例解说
  • 原文地址:https://www.cnblogs.com/chenjunjie12321/p/9706006.html
Copyright © 2011-2022 走看看