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}

猜你喜欢

转载自www.cnblogs.com/agilestyle/p/12807450.html
今日推荐