Mushroom Notes Mushroom Notes
🍄首页
  • JavaSE

    • 基础篇
    • 数据结构
    • IO流
    • Stream流
    • 函数式接口
    • JUC
    • 反射
    • 网络编程
    • 设计模式
  • JavaEE

    • Servlet
    • JDBC
    • 会话技术
    • 过滤器监听器
    • 三层架构
  • JDK

    • 总览
  • JVM

    • 总览
  • 常用mate
  • CSS
  • JavaScript
  • rds 数据库

    • MySQL
    • MySQL 进阶
    • MySQL 库表规范
  • nosql 数据库

    • Redis
    • Redis 进阶
    • Redis 底层
    • MongoDB
  • Spring生态

    • Spring
    • Spring MVC
    • Spring boot
    • Spring Validation
  • Spring Cloud生态

    • Spring Cloud
    • 服务治理
    • 远程调用
    • 网关路由
    • 服务保护
    • 分布式事务
    • 消息中间件
  • 数据库

    • Mybatis
    • Mybatis Plus
    • Elasticsearch
    • Redisson
  • 通信

    • Netty
📚技术
  • 方案专题
  • 算法专题
  • BUG专题
  • 安装专题
  • 网安专题
  • 面试专题
  • 常用网站
  • 后端常用
  • 前端常用
  • 分类
  • 标签
  • 归档

kinoko

一位兴趣使然的热心码农
🍄首页
  • JavaSE

    • 基础篇
    • 数据结构
    • IO流
    • Stream流
    • 函数式接口
    • JUC
    • 反射
    • 网络编程
    • 设计模式
  • JavaEE

    • Servlet
    • JDBC
    • 会话技术
    • 过滤器监听器
    • 三层架构
  • JDK

    • 总览
  • JVM

    • 总览
  • 常用mate
  • CSS
  • JavaScript
  • rds 数据库

    • MySQL
    • MySQL 进阶
    • MySQL 库表规范
  • nosql 数据库

    • Redis
    • Redis 进阶
    • Redis 底层
    • MongoDB
  • Spring生态

    • Spring
    • Spring MVC
    • Spring boot
    • Spring Validation
  • Spring Cloud生态

    • Spring Cloud
    • 服务治理
    • 远程调用
    • 网关路由
    • 服务保护
    • 分布式事务
    • 消息中间件
  • 数据库

    • Mybatis
    • Mybatis Plus
    • Elasticsearch
    • Redisson
  • 通信

    • Netty
📚技术
  • 方案专题
  • 算法专题
  • BUG专题
  • 安装专题
  • 网安专题
  • 面试专题
  • 常用网站
  • 后端常用
  • 前端常用
  • 分类
  • 标签
  • 归档
  • JavaSE

    • 基础篇
    • 数据结构
    • IO流
    • Stream流
    • 函数式接口
      • Consumer
      • Supplier
      • Funtion
      • Predicate
    • JUC
    • 反射
    • 网络编程
    • 设计模式
  • JavaEE

  • JDK版本特性

  • JVM

  • Java
  • JavaSE
kinoko
2023-12-16
目录

函数式接口


四大函数式接口
image.png

# Consumer


public class Main {
    public static void main(String[] args) {
        test(1, System.out::println);
    }

    public static <T> void test(T t, Consumer<T> consumer) {
        consumer.accept(t);
    }
}

// 打印
1
1
2
3
4
5
6
7
8
9
10
11
12

# Supplier


public class Main {
    public static void main(String[] args) {
        System.out.println(test(() -> "test1"));
        System.out.println(new MyOptional<>("test2").get());
    }

    public static class MyOptional<T> implements Supplier<T> {
        private final T value;

        public MyOptional(T value) {
            this.value = value;
        }

        @Override
        public T get() {
            return value;
        }
    }

    public static <T> T test(Supplier<T> supplier) {
        return supplier.get();
    }

}

// 打印
test1
test2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# Funtion


image.png

public class Main {
    public static void main(String[] args) {
        MyClass myClass = new MyClass("hello");
        System.out.println(test(myClass, MyClass::getValue));
    }

    public static class MyClass {

        private final String value;

        private MyClass(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }

    public static <T, R> R test(T t, Function<T ,R> function) {
        return function.apply(t);
    }

}

// 打印
hello
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# Predicate


public class Main {
    public static void main(String[] args) {
        System.out.println(test(1, t -> 1 > t));
    }

    public static <T> boolean test(T t, Predicate<T> predicate) {
        return predicate.test(t);
    }

}

// 打印
false
1
2
3
4
5
6
7
8
9
10
11
12
13
#java
上次更新: 2023/12/29 11:32:56
Stream流
JUC

← Stream流 JUC→

最近更新
01
JVM 底层
09-13
02
JVM 理论
09-13
03
JVM 应用
09-13
更多文章>
Theme by Vdoing | Copyright © 2022-2024 kinoko | MIT License | 粤ICP备2024165634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式