java8的Consumer函数式接口

Consumer是消费性接口,通用的方法是用accept()方法;

实体类

    /**
     * 消费型接口,有参数,无返回值类型的接口。
     */
    @Test
    public void consumerTest() {
        User user = User.builder().build();
        UserPageDto userPageDto = new UserPageDto();
        userPageDto.setUserName("张三");
        userPageDto.setRole(2);
        cosumerMethod(user, userPageDto, (x, y) -> BeanUtils.copyProperties(x, y));
        cosumerMethod1(user, (x) -> System.out.println(x));
        cosumerMethod1(user, System.out::println);
    }
    
    private void cosumerMethod1(User user, Consumer<User> cu) {
        cu.accept(user);
    }

    private void cosumerMethod(User user, UserPageDto userPageDto, BiConsumer<UserPageDto,User> bc) {
        bc.accept(userPageDto, user);
    }

其中user和userPageDto可以如下:

@Data
public class UserPageDto {

    private String userName;
    private Integer role;

}
posted @ 2019-12-13 11:26  十黎九夏  阅读(1641)  评论(0编辑  收藏  举报