原创转载请注明出处:http://agilestyle.iteye.com/blog/2424768
Consumer
Consumer是从T到void的一元函数,接受一个入参但不返回任何结果的操作
e.g.
package org.fool.java8;
import java.util.Arrays;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
public class ConsumerTest {
private static class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
private static void consumer(List<Person> persons, Consumer<Person> consumer) {
for (Person person : persons) {
consumer.accept(person);
}
}
private static void biConsumer(String prefix, List<Person> persons, BiConsumer<String, Person> consumer) {
for (Person person : persons) {
consumer.accept(prefix, person);
}
}
public static void main(String[] args) {
List<Person> list = Arrays.asList(
new Person("zhangsan", 18),
new Person("lisi", 28));
consumer(list, System.out::println);
biConsumer("HR: ", list, (prefix, person) -> System.out.println(prefix + person));
biConsumer("IT: ", list, (prefix, person) -> System.out.println(prefix + person));
}
}
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}