zoukankan      html  css  js  c++  java
  • java 将函数作为参数传递

    有时为了更好的封装,需要将函数作为参数进行传递,以便更好的复用。

    比方说现在有个需求:

      有一个列表,需要根据不同的条件进行筛选,想用filter进行筛选,由于筛选情况较多,难道要写多个判断函数么?这时候就需要用到将函数作为参数进行传递了。

      Function传入两个参数,一个是入参,一个是返回值。这里User是入参,Boolean是返回值。

      使用Function的apply方法,接受入参,处理并返回。

    public List<User> getUsersByFilter(Function<User, Boolean> filter) {
        return getUserList().stream().filter(user -> filter.apply(user)).collect(Collectors.toList());
    }

      Function的使用如下:直接使用lamboda表达式,user作为入参,boolean返回值

    public List<User> getMen() {
        return getUsersByFilter(user -> user.getGender() == 1)
    }

      filter中通过apply调用传入的lamboda函数,有点绕,仔细理解一下。

  • 相关阅读:
    自我介绍
    币值转换
    打印沙漏
    对我影响最大的三位老师

    pta
    pta-3
    学习计划
    对我有影响的三个老师
    介绍自己
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13840089.html
Copyright © 2011-2022 走看看