Lambda Expression - Consumer
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/12807450.html
Consumer
Consumer是从T到void的一元函数,接受一个入参但不返回任何结果的操作。
Demo
ConsumerTest.java
1 package org.fool.java8; 2 3 import java.util.Arrays; 4 import java.util.List; 5 import java.util.function.BiConsumer; 6 import java.util.function.Consumer; 7 8 public class ConsumerTest { 9 10 private static class Person { 11 private String name; 12 private Integer age; 13 14 public Person(String name, Integer age) { 15 this.name = name; 16 this.age = age; 17 } 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 27 public Integer getAge() { 28 return age; 29 } 30 31 public void setAge(Integer age) { 32 this.age = age; 33 } 34 35 @Override 36 public String toString() { 37 return "Person{" + 38 "name='" + name + '\'' + 39 ", age=" + age + 40 '}'; 41 } 42 } 43 44 private static void consumer(List<Person> persons, Consumer<Person> consumer) { 45 for (Person person : persons) { 46 consumer.accept(person); 47 } 48 } 49 50 private static void biConsumer(String prefix, List<Person> persons, BiConsumer<String, Person> consumer) { 51 for (Person person : persons) { 52 consumer.accept(prefix, person); 53 } 54 } 55 56 public static void main(String[] args) { 57 List<Person> list = Arrays.asList( 58 new Person("zhangsan", 18), 59 new Person("lisi", 28)); 60 61 consumer(list, System.out::println); 62 63 biConsumer("HR: ", list, (prefix, person) -> System.out.println(prefix + person)); 64 biConsumer("IT: ", list, (prefix, person) -> System.out.println(prefix + person)); 65 } 66 }
Console Output
Person{name='zhangsan', age=18} Person{name='lisi', age=28} HR: Person{name='zhangsan', age=18} HR: Person{name='lisi', age=28} IT: Person{name='zhangsan', age=18} IT: Person{name='lisi', age=28}
强者自救 圣者渡人