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 }
  • 相关阅读:
    Delphi 之 内存篇(二)
    VC++ 之 第八课(面向对象三)
    Delphi API 之 BitBlt
    我所认为的极客精神(一)
    DOS程序员手册(十五)
    DOS程序员手册(十四)
    DOS程序员手册(十三)
    DOS程序员手册(十二)
    DOS程序员手册(十一)
    DOS程序员手册(十)
  • 原文地址:https://www.cnblogs.com/GooKiki/p/11430590.html
Copyright © 2011-2022 走看看