zoukankan      html  css  js  c++  java
  • andThenDemo 和Predicate的函数式

     1 public class andThenDemo {
     2     // 该接口对应的方法类型为接收一个参数,没有返回值,可以通俗的理解成将这个参数'消费掉了'
     3     // 一般来说使用Consumer接口往往伴随着一些期望状态的改变或者事件的发生,例如最典型的forEach就是使用的Consumer接口,
     4     // 虽然没有任何的返回值,但是却向控制台输出了语句。
     5     public static void changeAlpha(Consumer<String> consumer1,Consumer<String> consumer2){
     6         consumer1.andThen(consumer2).accept("guhanwen");
     7     }
     8 
     9     public static void main(String[] args) {
    10         changeAlpha(new Consumer<String>() {
    11             @Override
    12             public void accept(String s) {
    13               char[] as = s.toCharArray();
    14                 for (char a:as) {
    15                     if ('a'<a&&a<'z'){
    16                         a-=32;
    17                     }
    18                 }
    19             }
    20         }, new Consumer<String>() {
    21             @Override
    22             public void accept(String s) {
    23                 char[] as = s.toCharArray();
    24                 for (char a:as) {
    25                     if ('A'<a&&a<'Z'){
    26                         a+=32;
    27                     }
    28                 }
    29             }
    30         });
    31     }
    32 }
    PredicateDemo
     test() 中传入的就是在匿名类中实现时候的String s 的值
     1 public class PredicateDemo {
     2     // 这个相当于定义了一个Predicate 的接口函数,其中函数中有唯一实现的方法,
     3     // 方法的具体实现,用到的是匿名内部类中的方法实现
     4     public static void predicate(Predicate<String>  predicate1,Predicate<String> predicate2){
    5 predicate1.and(predicate2).test("gugu"); 6 } 7 8 public static void main(String[] args) { 9 predicate(new Predicate<String>() { 10 @Override 11 // 方法的具体实现,用到的是匿名内部类中的方法实现,在这个匿名内部类中,会写出实现逻辑 12 public boolean test(String s) { 13 if (s.length()>5){ 14 return true; 15 } 16 return false; 17 } 18 }, new Predicate<String>() { 19 @Override 20 // 用增强for循环的方式,读取所有的字符串中的值, 21 // 然后再依次判断,逻辑中的判断条件 22 public boolean test(String s) { 23 char[] as = s.toCharArray(); 24 for (char a: as) { 25 if ('0'<a&&a<'9'){ 26 return true; 27 } 28 } 29 30 return false; 31 } 32 }); 33 } 34 }
  • 相关阅读:
    程序员的自我修养---------一个程序员应该懂点什么
    Duilib的圆环形 进度条 实现(网易云信版本)
    位定义,用于判断是否包含某属性
    Duilib的圆角矩形 抗锯齿优化 弥补RoundRect不足(网易云信borderround版本)
    exe、msi、dos、bat等静默运行,后台运行,不弹窗的解决办法
    删除桌面上有文件但提示项目不存在的方法
    MyBatis插入语句返回主键值
    django学习之Model(二)
    TCP三四次握手
    django学习之Model(一)
  • 原文地址:https://www.cnblogs.com/GooKiki/p/11430590.html
Copyright © 2011-2022 走看看