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返回的值。
     
     

  • 相关阅读:
    WP2Sinablog使用后的后遗症
    .NET Framework 4 与 .NET Framework 4 Client Profile
    360浏览器也有了开发人员工具了
    让你的手机号“变”qq号
    首次体验 Live Writter
    判断素数
    SqlServer文件挂起
    vni—2015:验证错误
    成功者善于模仿(转)
    dbms_output缓冲区溢出
  • 原文地址:https://www.cnblogs.com/chenjunjie12321/p/9706006.html
Copyright © 2011-2022 走看看