java 函数编程 java.util.function.Consumer
java.util.function
Consumer<T> 接收T对象,不返回值
作用: 消费某个对象 Iterable接口的forEach方法需要传入Consumer,大部分集合类都实现了该接口,用于返回Iterator对象进行迭代。 Iterable forEach 函数: default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); }} 使用场景: forEach 自定义处理的逻辑代码,灵活多变 demo public static void main(String[] args) { Consumer<Integer> methodParam = HelloHandler::staticMethod; Consumer<Integer> methodParam1 = HelloHandler::staticMethod; Consumer<Integer> methodParam2 = methodParam.andThen(methodParam1); methodParam2.accept(1); BiConsumer<HelloHandler,Integer> biConsumer = HelloHandler::normalMethod;
// methodParam1.accept(2);
// HelloHandler helloHandler = new HelloHandler();
//
// Function<Integer,Integer> function = new HelloHandler()::normalMethod;
// System.out.println( function.apply(1));
// Consumer<Integer> methodParam1 = helloHandler::normalMethod;
List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.forEach(new DemoConsumer());} static class DemoConsumer implements Consumer<String>{ @Override public void accept(String s) { //处理业务逻辑代码 System.out.println("s = [" + s + "]"); }} 这样逻辑代码就分离出来了 可以简化为 lambda 表达式: list.forEach(c->{ //处理业务逻辑代码 System.out.println("c = [" + c + "]"); });
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。