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函数,有点绕,仔细理解一下。

  • 相关阅读:
    全文本搜索神器
    唯一索引和普通索引怎么选择
    程序员应不应该搞全栈
    c 的陷阱
    抽象能力
    电影电视剧推荐
    系统故障诊断
    一次web网站被入侵的处理记录
    Spark RDD 操作
    (转)Mysql哪些字段适合建立索引
  • 原文地址:https://www.cnblogs.com/SamNicole1809/p/13840089.html
Copyright © 2011-2022 走看看