Jdk8之Function简单使用

1,为什么要用Jdk8之Function

通用函数,减少冗余代码,保持代码清晰

2,如何使用Function

规则:

•1、方法入参一致。

•2、方法返回参数一致。

•3、方法体处理逻辑几乎一致

3,使用展示

3.1 旧方法:


    @Resource
    UserDao userDao;

    public List<User> loadBindIds(List<Long> ids){
        List<SimpleInfoDTO> listUser = userDao.listUser(ids);
        List<User> list=new LinkedList<>();
        listUser.stream().forEach(
                simpleInfoDTO->{
                    User user=new User();
                    user.setId(simpleInfoDTO.getId());
                    user.setRealName(simpleInfoDTO.getName());
                    user.setAccount(simpleInfoDTO.getCode());
                    list.add(user);
                }
        );
        return list;
    }

    public List<User> loadNotBindIds(List<Long> ids) {
        List<SimpleInfoDTO> listUser = userDao.listNotUser(ids);
        List<User> list = new LinkedList<>();
        listUser.stream().forEach(
                simpleInfoDTO -> {
                    User user = new User();
                    user.setId(simpleInfoDTO.getId());
                    user.setRealName(simpleInfoDTO.getName());
                    user.setAccount(simpleInfoDTO.getCode());
                    list.add(user);
                }
        );
        return list;
    }

上面的旧方法中满足这三个规则

•1、方法入参一致。

•2、方法返回参数一致。

•3、方法体处理逻辑几乎一致(userDao调用的方法不同)

3.2 使用Function后:


    public List<User> loadUserIds(List<Long> ids, Function<List<Long>, List<SimpleInfoDTO>> query){
        List<SimpleInfoDTO> listUser = query.apply(ids);
        List<User> list=new LinkedList<>();
        listUser.stream().forEach(
                simpleInfoDTO->{
                    User user=new User();
                    user.setId(simpleInfoDTO.getId());
                    user.setRealName(simpleInfoDTO.getName());
                    user.setAccount(simpleInfoDTO.getCode());
                    list.add(user);
                }
        );
        return list;
    }

    public List<User> loadBindIds(List<Long> ids){
        return loadUserIds(ids,arg -> userDao.listUser(ids));
    }

    public List<User> loadNotBindIds(List<Long> ids) {
        return loadUserIds(ids,arg -> userDao.listNotUser(ids));
    }

4,更多文章

https://blog.csdn.net/shichen2010/article/details/105022321?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值