Guava - Function

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
}app


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

多数状况下,咱们都须要本身书写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进行对象过滤spa


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

相关文章
相关标签/搜索