Java内置的四大核心函数式接口

Consumer:消费型接口

对类型为T的对象应用操作,包含方法:void accept(T t)

public class TestLambda02 {
public static void main(String[] args) {
testConsumer(9999, (x) -> {
System.out.println("打游戏花费:" + x);
});
} public static void testConsumer(double money, Consumer<Double> consumer) {
consumer.accept(money);
}
}

Supplier:供给型接口

返回包含类型为T的对象,包含方法:T get()

public class TestLambda02 {
public static void main(String[] args) {
List<Integer> list = testSupplier(10, () -> (int)(Math.random() * 100));
list.forEach(System.out::println);
} public static List<Integer> testSupplier(int num, Supplier<Integer> supplier) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < num; i ++) {
Integer n = supplier.get();
list.add(n);
}
return list;
}
}

Function<T, R>:函数型接口

对类型为T的对象应用操作,并返回结果,结果类型为R。包含方法:R apply(T t)

public class TestLambda02 {
public static void main(String[] args) {
String string = testFunction("哈哈哈哈哈哈哈", (str) -> str.substring(0, str.length() - 2));
System.out.println("---->" + string);
} public static String testFunction(String str, Function<String, String> function) {
return function.apply(str);
}
}

Predicate(T):断定型接口

确定类型为T的对象是否满足某约束,并返回boolean值。包含方法:boolean test(T t)

public class TestLambda02 {
public static void main(String[] args) {
System.out.println(testPredicate("哈哈哈哈皇后", (str) -> str.length() == 3));
} public static boolean testPredicate(String string, Predicate<String> predicate) {
return predicate.test(string);
}
}

PS:除了这四个接口,java还内置了其他很多接口,这里不再赘述。可以在rt.jar文件下的java/util/function包下查看。

Java8新特性 - Java内置的四大核心函数式接口的更多相关文章

  1. JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...

  2. Java8内置的四大核心函数式接口

    package java_8; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import j ...

  3. java 8内置的四大核心函数式接口

    Consumer<T> : 消费性接口 返回值  void accept(T t); public void happy(double money, Consumer<Double& ...

  4. Java8新特性(一)——Lambda表达式与函数式接口

    一.Java8新特性概述 1.Lambda 表达式 2. 函数式接口 3. 方法引用与构造器引用 4. Stream API 5. 接口中的默认方法与静态方法 6. 新时间日期 API 7. 其他新特 ...

  5. Java8新特性—四大内置函数式接口

    Java8新特性--四大内置函数式接口 预备知识 背景 Lambda 的设计者们为了让现有的功能与 Lambda 表达式良好兼容,考虑了很多方法,于是产生了函数接口这个概念. 什么是函数式接口? 函数 ...

  6. java8新特性—四大内置核心接口

    java8新特性-四大内置核心接口 四大内置核心接口 //消费型接口 Consumer<T>:: vode accept(T t); //供给型接口 Supplier<T>:: ...

  7. java8新特性——四大内置核心函数式接口

    在前面几篇简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义 ...

  8. Java8新特性 -- 四大内置的核心函数式接口

    可以把这些函数式接口作为方法的参数. 1.0 核心内置函数式接口一: 消费型接口@FunctionalInterfacepublic interface Consumer<T> { voi ...

  9. java内置的四大函数式接口

    一.Consumer:消费型接口(void accept(T t)) 举一个例子 public class LambdaTest { @Test public void test() { happyT ...

随机推荐

  1. onenote架设在局域网服务器

    1.服务器端工作 1.1.在局域网服务器磁盘建个 文件夹,命名为 abc 1.2.右键共享,添加用户everyone 权限设置为可读写 不需要安装onenote 2.客户端工作 2.1.在客户端服务器 ...

  2. chrome 打开本地 pdf 会自动开启下载

    正解:修改注册表:[HKEY_CLASSES_ROOT\.pdf],将 Content Type 的值改为: application/pdf 即可

  3. linux下如何制作initramfs镜像?

    1. 准备文件 加入已经准备好了所有文件在/home/initrd-base目录下 2. 在内核中指定/home/initramfs-base目录 General setup -> (/home ...

  4. Windows 操作系统 快捷键

    窗口放大缩小:  + ↑↓ 最小化窗口: ALT + Esc 关闭窗口: Alt + F4 搜索功能:  + 直接输入搜索内容 打开文件管理器:  + E 在文件管理器中切换: Tab

  5. flutter 保持页面状态

    import 'package:flutter/material.dart'; import 'KeepAliveDemo.dart'; void main() => runApp(MyApp( ...

  6. xcopy命令拷贝文件夹和文件

    文件夹: xcopy /r /y 'c:123\' 'D:\123\' 文件: echo f | xcopy  /d /r /k  c:\index2.htm c:\index.htm

  7. Spring cloud微服务安全实战-5-3后端服务改造

    本节来实现一个登陆的效果. 需要一个登陆前的页面和登陆后的页面. 直接粘贴过来的代码 这是一个和后台的绑定 后台要有个autenticated的对象来实现绑定,ts内我们定义这个autenticate ...

  8. 【Linux】反向代理

    Nginx server { root /data/wwwroot/; server_name www.test.com; location / { proxy_http_version 1.1; p ...

  9. java 连接 mongodb 及使用

    MongoDB是当今非常流行的一款NoSQL数据库,本文介绍如何使用MongoDB的Java驱动来操作MongoDB. 一.引入MongoDB Java Driver包 如果需要操作MongoDB的J ...

  10. linux信号量例子

    semaphore.h 提供的是 POSIX 标准定义的 semaphore 接口,而 sys/sem.h 里 提供的是符合 System V 标准的 semaphore接口 (semget, sem ...