ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java: FunctionalInterface

2022-05-25 12:32:18  阅读:178  来源: 互联网

标签:Predicate jot String void FunctionalInterface static Java public


 

java.util.function 定义了一些预定义FuncationInterface

Supplier:

 

import java.util.function.Supplier;

public class addThen{
  public static void main(String[] args){
    for(int i = 0; i < 10; i++){
      jot(() -> (int) Math.floor(Math.random() * 5 + 1));
    }
  }
  // 生成 Supplier 生成 [1,5]间随机数
  public static void jot(Supplier<Integer> supplier){
    Integer integer = supplier.get();
    System.out.println("integer = " + integer);
  }
}

 

Consumer:

 

 

import java.util.Locale;
import java.util.function.Consumer;

public class addThen{
  public static void main(String[] args){
    jot(s->{
      System.out.println("s = " + s);
      System.out.println("s.toUpperCase(Locale.ROOT) = " + s.toUpperCase(Locale.ROOT));
    },s->{
      System.out.println("s = " + s);
      System.out.println("s.toLowerCase(Locale.ROOT) = " + s.toLowerCase(Locale.ROOT));
    });
  }

  public static void jot(Consumer<String> c1, Consumer<String> c2){
    c1.andThen(c2).accept("etymology");
  }
}

 

 Function:

 

 

import java.util.function.Function;

public class addThen{
  public static void main(String[] args){
    jot(Integer::parseInt, "55");
  }
  // String -> Integer
  private static void jot(Function<String, Integer> function, String s){
    Integer integer = function.apply(s);
    System.out.println("integer = " + integer);
  }
}

 

 

import java.util.function.Function;

public class addThen{
  public static void main(String[] args){
    jot(Integer::parseInt, Integer::doubleValue, "55");
  }

  // String -> Integer -> Double
  private static void jot(Function<String, Integer> f1, Function<Integer, Double> f2, String s){
    Double aDouble = f1.andThen(f2).apply(s);
    System.out.println("aDouble = " + aDouble);
  }
}

 

 

import java.util.function.Function;

public class addThen{
  public static void main(String[] args){
    jot(Integer::parseInt, Integer::doubleValue, "55");
  }

  // String -> Integer -> Double
  // 与andThen处理顺序不同, 先调用f1, 把f1结果作为参数给f2
  private static void jot(Function<String, Integer> f1, Function<Integer, Double> f2, String s){
    Double aDouble = f2.compose(f1).apply(s);
    System.out.println("aDouble = " + aDouble);

  }
}

 

 

import java.util.function.Function;

public class addThen{
  public static void main(String[] args){
    Function<Integer, Integer> identity = Function.identity();
    Integer integer = identity.apply(5);
    System.out.println("integer = " + integer);
    Integer modulus = identity.andThen(i -> i % 3).andThen(i -> (int) Math.pow(i, 3)).apply(11);
    System.out.println("modulus = " + modulus);
  }
}

 

Predicate:

 

 

import java.util.function.Predicate;

public class addThen{
  public static void main(String[] args){
    jot(s -> s.contains("jot"), "jotq");
  }

  private static void jot(Predicate<String> predicate, String message){
    boolean flag = predicate.test(message);
    System.out.println("flag = " + flag);
  }
}

 

 

import java.util.function.Predicate;

public class addThen{
  public static void main(String[] args){
    jot(s->s.contains("jot"),s->s.contains("qw"),"jotqwer");
  }

  private static void jot(Predicate<String> p1,Predicate<String> p2, String message){
    boolean flag = p1.and(p2).test(message);
    System.out.println("flag = " + flag);
  }
}

 

 

import java.util.function.Predicate;

public class addThen{
  public static void main(String[] args){
    jot(s -> s.contains("jot"), s -> s.contains("qw"), "jotqwer");
  }

  private static void jot(Predicate<String> p1, Predicate<String> p2, String message){
    boolean flag = p1.and(p2).negate().test(message);
    System.out.println("flag = " + flag);
  }
}

 

 

import java.util.function.Predicate;

public class addThen{
  public static void main(String[] args){
    System.out.println("Predicate.isEqual(null).test(null) = " + Predicate.isEqual(null).test(null));
    System.out.println("Predicate.isEqual(\"jot\").test(\"jot\") = " + Predicate.isEqual("jot").test("jot"));
  }
}

 

 

import java.util.function.Predicate;

public class addThen{
  public static void main(String[] args){
    boolean flag = Predicate.not(new Predicate<String>(){
      @Override
      public boolean test(String s){
        return s.contains("jot");
      }
    }).test("jotqw");
    System.out.println("flag = " + flag);
  }
}

 

标签:Predicate,jot,String,void,FunctionalInterface,static,Java,public
来源: https://www.cnblogs.com/dissipate/p/16308886.html

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

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

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

ICode9版权所有