ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

常用函数式Consumer接口练习

2022-04-07 12:03:04  阅读:92  来源: 互联网

标签:String 练习 System 接口 name println Consumer out


 

 1 package LambdaTest.LambdaTest04;
 2 
 3 import java.util.function.Consumer;
 4 
 5 /**
 6  * FileName: ConsumerTest
 7  * Author:   lps
 8  * Date:     2022/4/5 17:21
 9  * Sign:刘品水 Q:1944900433
10  *
11  * @FunctionalInterface public interface Consumer<T>
12  * 表示接受一个输入参数,并返回没有结果的操作。不像大多数其他的功能接口, Consumer有望通过的副作用。
13  * 这是一个functional interface其功能的方法是accept(Object)。
14  * <p>
15  * void accept(T t)
16  * 在给定的参数上执行此操作。
17  * default Consumer<T> andThen(Consumer<? super T> after)
18  * 返回一个由 Consumer执行此操作,在序列,其次是 after操作。
19  */
20 public class ConsumerTest {
21     public static void main(String[] args) {
22         operatorString("刘品水", s -> System.out.println(s));
23         //operatorString("刘品水",System.out::println);
24 
25         //StringBuilder reverse() 
26         //使这个字符序列被序列的反转所取代。
27         operatorString("刘品水", s -> {
28             String sb = new StringBuilder(s).reverse().toString();
29             System.out.println(sb);
30         });
31         System.out.println("===========");
32         operatorString("刘品水", lps -> System.out.println(lps),
33                 lps -> System.out.println(new StringBuilder(lps).reverse().toString()));
34 
35 
36 
37     }
38 
39     private static void operatorString(String name, Consumer<String> con1, Consumer<String> con2) {
40 //        con1.accept(name);
41 //        con2.accept(name);
42         //default Consumer<T> andThen(Consumer<? super T> after)
43         //返回一个由 Consumer执行此操作,在序列,其次是 after操作。
44         con1.andThen(con2).accept(name);
45     }
46 
47     private static void operatorString(String name, Consumer<String> con) {
48         con.accept(name);
49     }
50 
51 
52 }

 

 

package LambdaTest.LambdaTest05;

import java.util.function.Consumer;

/**
 * FileName: ConsumerTest
 * Author:   lps
 * Date:     2022/4/5 19:51
 * Sign:刘品水 Q:1944900433
 */
public class ConsumerTest {
    public static void main(String[] args) {
        String[] strsArray = {"刘品水,20", "彭于晏,28", "吴彦祖,26"};
//        PrintInfo(strsArray, (String str) -> {
//                    String name = str.split(",")[0];
//                    System.out.print("姓名:" + name);
//
//                }, (String str) -> {
//                    int age = Integer.parseInt(str.split(",")[1]);
//                    System.out.println(",年龄为:" + age);
//                }
//        );
        PrintInfo(strsArray,str-> System.out.print("姓名:"+str.split(",")[0]),
                str0-> System.out.println(",年龄:"+Integer.parseInt(str0.split(",")[1])));
    }

    private static void PrintInfo(String[] strArray, Consumer<String> con1, Consumer<String> con2) {
        for (String s : strArray) {
            con1.andThen(con2).accept(s);
        }
    }
}

 

 

 

 

 

标签:String,练习,System,接口,name,println,Consumer,out
来源: https://www.cnblogs.com/lps1944900433/p/16111582.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有