该两个接口为java8提供的函数式接口,支持函数式编程。
由接口名称可以知道这两个接口 一般用来处理 传入进来的消息的。他们都有accept方法。
他们的区别就是Consumer接收一个参数,BiConsumer接收两个参数。
他们实际的应用场景比较多,比如map.foreach方法,该方法就使用了BiConsumer接口来处理数据, 还有就是set.foreach方法,该方法就是使用Consumer来处理消息。
实战
当然我们还可以合理运用在其他需要消费数据的地方。这里举一个例子。
当我们用easyexcel来读取excel数据保存到数据库中的时候,有可能数据很多,我们需要分批次处理,来保证内存空间充足。首先我们需要自定义一个集合用来存放数据,并自定义监听器来监听读取内容,当我们处理一次数据时,我们可以把实现该操作放在Consumer接口中来实现。这时具体的逻辑操作,就是需要在外面定义accept的具体处理逻辑,然后传入excelutil中来使用。
我觉得这个处理方法还是很好的