java函数式编程之Consumer

  • Post author:
  • Post category:java


描述:Consumer< T>接口接受一个T类型参数,没有返回值。

源码如下:

public interface Consumer<T> {

    /**
     * Performs this operation on the given argument.
     *
     * @param t the input argument
     */
    void accept(T t);
}

测试代码如下:

@Test
public void test(){
    UserT userT = new UserT("zm");
    //接受一个参数
    Consumer<UserT> userTConsumer = userT1 -> userT1.setName("zmChange");};
    userTConsumer.accept(userT);
    logger.info(userT.getName());//输出zmChange
}

java8以前的实现如下:

@Test
public void test1(){
    UserT userT = new UserT("zm");
    this.change(userT);
    logger.info(userT.getName());//输出zmChange
}

private void change(UserT userT){
    userT.setName("zmChange");
}

两相对比,使用函数式确实是要优雅一点。



版权声明:本文为z345434645原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。