java中接口Consumer 的用法

Java 中的 Consumer 接口是一个函数式接口,它接受一个输入参数,并且不返回任何结果。Consumer 接口通常用于对某个对象或值进行处理,例如打印日志、修改对象属性等场景。

下面是 Consumer 接口的基本用法:

  1. 定义接口对象:

    Consumer<String> consumer = (str) -> System.out.println(str);

    这个示例代码定义了一个 Consumer 接口对象,它接受一个字符串类型的参数,并将其打印到控制台上。

  2. 使用接口对象:

    consumer.accept("hello, world");

    在这个示例代码中,我们通过调用 accept() 方法来将一个字符串传递给 Consumer 接口对象。注意,accept() 方法只有一个参数,因此在这个示例代码中需要传递一个字符串类型的参数。输出结果为 hello, world

Consumer 接口还可以使用方法引用(Method Reference)来简化代码,例如:

Consumer<String> consumer = System.out::println;

这行代码等价于上面的示例代码,将 System.out.println 方法作为 Consumer 接口对象的实现。可以看到,使用方法引用可以使代码更加简洁和易读。

Consumer 接口还可以和其它函数式接口一起使用,例如 PredicateFunction 等,以实现复杂的业务逻辑。下面是几个示例:

  1. 遍历集合:

    List<String> list = Arrays.asList("apple", "banana", "cherry"); 
    Consumer<String> consumer = (str) -> System.out.println(str); 
    list.forEach(consumer); // 打印所有元素

    这个示例代码使用 Consumer 接口遍历一个字符串列表,并将每个元素打印到控制台上。

  2. 修改对象属性:

    List<Person> persons = Arrays.asList(new Person("Alice"), new Person("Bob"), new Person("Charlie")); 
    Consumer<Person> consumer = (person) -> person.setName(person.getName().toUpperCase()); 
    persons.forEach(consumer); // 将所有姓名转换成大写

    这个示例代码使用 Consumer 接口修改一个人物列表中每个人的姓名,将其转换成大写形式。注意,在这个示例代码中,我们将 Consumer 接口作为参数传递给 forEach() 方法,而不是像第一个示例代码一样直接调用。

总之,Consumer 接口是 Java 中非常实用的一个函数式接口,在处理需要对某个对象或值进行处理,但不需要返回结果的场景下特别有用。它可以和其它函数式接口一起使用,方便地实现复杂的业务逻辑。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值