zoukankan      html  css  js  c++  java
  • Guava

    Function和Functions进行对象转换
    Function<F,T>接口: 一个function就是从一个对象到另外一个对象的转换变形
    Function接口的第一个参数是原始的对象, 第二个参数就是你想要转成的对象
    Function接口中的apply方法,接收一个输入对象并返回一个输出对象, 接收第一个参数, 通过apply方法处理返回你想要的结果。 一个好的Function实现应该没有副作用,也就是说对象作为参数传递方法调用apply方法后应保持不变。
    @Test
    public void testFunction() {
      Function<Date, String> function = new Function<Date, String>() {
        @Override
        public String apply(Date input) {
          return new SimpleDateFormat("yyyy-MM-dd").format(input);
        }
      };
      System.out.println(function.apply(new Date())); //2014-08-21
    }


    1. 转换单个对象
      function.apply(new Date());
    2. 批量转换一个集合对象
    像Lists和Maps这类的Collection工具类给我们提供了转换的方法:
      topMap = Maps.transformValues(fromMap, function);
      toList = Lists.transform(fromList, function);

    多数情况下,我们都需要自己书写Function接口的实现,以适应工作的需求,不过Guava提供了Functions工具类,其包含了一些常用的Function实现:

    Functions.compose()方法
    //Function<A, C> compose(Function<B, C> g, Function<A, ? extends B> f)
    //接收两个Function作为参数,返回两个Function的组合, f的输出会作为g的输入,g输出为最终作为compose的输出 等价于: g.apply(f.apply(key));
    使用Predicate和 Predicates进行对象过滤


    使用Supplier和Suppliers进行对象的包装构建

  • 相关阅读:
    centos 下源码安装postgresql 9.4
    sql server访问excel文件
    什么是脏读、不可重复读、幻读
    对象名 master.dbo.spt_values' 无效
    数据库恢复和日志文件阐述
    查看数据大小和日志文件大小
    CPU性能瓶颈
    数据库打补丁,服务升级失败
    Docker安装WordPress并添加https访问
    svn插件安装
  • 原文地址:https://www.cnblogs.com/zi-yao/p/6704106.html
Copyright © 2011-2022 走看看