java8函数式接口小例子
接口 函数 例子 java8
2023-09-27 14:26:54 时间
// Function<T, R> -T作为输入,返回的R作为输出 Function<String,String> function = (x) -> {System.out.print(x+": ");return "Function";}; System.out.println(function.apply("hello world")); //Predicate<T> -T作为输入,返回的boolean值作为输出 Predicate<String> pre = (x) ->{System.out.print(x);return false;}; System.out.println(": "+pre.test("hello World")); //Consumer<T> - T作为输入,执行某种动作但没有返回值 Consumer<String> con = (x) -> {System.out.println(x);}; con.accept("hello world"); //Supplier<T> - 没有任何输入,返回T Supplier<String> supp = () -> {return "Supplier";}; System.out.println(supp.get()); //BinaryOperator<T> -两个T作为输入,返回一个T作为输出,对于“reduce”操作很有用 BinaryOperator<String> bina = (x,y) ->{System.out.print(x+" "+y);return "BinaryOperator";}; System.out.println(" "+bina.apply("hello ","world"));
输出如下:
hello world: Function hello World: false hello world Supplier hello world BinaryOperator
import java.time.Instant; import java.util.Arrays; import java.util.List; import java.util.function.Function; import java.util.stream.IntStream; public class Test { public static void main(String ... args) throws Exception{ //1:lambda表达式和功能接口 Add a = (x, y) -> x+y; System.out.println(a.add(100,200)); System.out.println("------------------------------------------1"); //2:lambda表达式和集合 List<String> list = Arrays.asList("aaa","bbbb","cccc"); list.forEach(e -> {System.out.println(e);}); System.out.println("------------------------------------------2"); //3:接口中可以包含静态方法 Add.interfaceStaticMethod(); System.out.println("------------------------------------------3"); //4:接口中可以包含默认方法,默认方法实现类并不是必须实现。 Add add = (x,y) -> x-y; add.defaultMethod(); System.out.println("------------------------------------------4"); //5:java.util.function 包下提供的函数式接口 String s = "hello"; Function<String,String> function = x -> x+" world"; System.out.println(function.apply(s)); System.out.println("------------------------------------------5"); //6:java.util.stream包 List<Integer> strings = Arrays.asList(1,2,3); IntStream stream = strings.stream().mapToInt(Integer::valueOf); stream.forEach(x->{System.out.println(x);}); System.out.println("------------------------------------------6"); System.out.println(Instant.now().getNano()); System.out.println(Instant.MIN); System.out.println(Instant.MAX); } } @FunctionalInterface //函数式接口(也叫功能接口),此接口中只能有一个抽象方法。函数式接口可以用lambda表达式实例化。 interface Add { public int add(int x,int y); public static void interfaceStaticMethod(){ System.out.println("interface static method"); } public default void defaultMethod(){ System.out.println("default method"); } }
输出如下:
300 ------------------------------------------1 aaa bbbb cccc ------------------------------------------2 interface static method ------------------------------------------3 default method ------------------------------------------4 hello world ------------------------------------------5 1 2 3 ------------------------------------------6 280000000 -1000000000-01-01T00:00:00Z +1000000000-12-31T23:59:59.999999999Z
相关文章
- 函数式接口
- Flask 使用蓝图接口报错 404 not found
- C++-STL-组件(五)-适配器01:一种用来当作修饰(容器)或(仿函数)或(迭代器)接口的东西;
- 还在用策略模式解决 if-else?Map + 函数式接口就搞定了。。。
- 接口自动化框架,lm-easytest内测版发布,赶紧用起来~
- 一文500字手把手教你接口测试工具Postman的基本使用
- 不愧是美团内部“接口自动化测试学习笔记”这细节讲解,神了
- python接口自动化测试 ------ 接口介绍
- 接口测试时, 数据Mock为何如此重要?
- Java8新特性(一)——Lambda表达式与函数式接口
- 【Rust】外部函数接口
- iOS后向兼容:如何发现过期接口
- 服务器数据存储 主流磁盘接口详解
- App架构设计经验谈:接口”安全机制”的设计
- 企业支付宝账号开发接口实现
- java8 函数接口
- Lumen使用tideways加中间件记录慢接口以及对应接口执行的SQL
- Java模拟物流快递系统程序设计(此题仅仅实现类的继承与多态,后续增加接口部分)
- 8000字长文让你彻底了解 Java 8 的 Lambda、函数式接口、Stream 用法和原理
- java8新特性专题之三、lambda四大内置函数式接口
- SATA 6Gbps/mSATA/M.2/NGFF/PCI-E/SATA Express/U.2/SFF-8639/E1.S硬盘接口综述
- 【python/request/HTMLTestRunner/unittest】接口自动化测试框架
- Winform调用百度地图接口简单示例
- C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)
- JAVA抽象类,接口,多态,抽象方法,一次列举
- golang学习七:异常处理:error接口, panic函数, 延时调用defer, recover