让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)

简介: 本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。

package unittest;

import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

@FunctionalInterface
interface IFuction1

{
public abstract P uppCase();
}
@FunctionalInterface
interface IFuction2

{
public abstract P uppCase(P p);
}
@FunctionalInterface
interface IFuction3{
public abstract R trans(P p);
}
public class TestLocal{
public static void main(String[] args) {
//利用方法引用的概念可以位一个方法定义多个名字,但是要求必须是函数式接口.

    IFuction1<String> ifunction1  = "avc" :: toUpperCase;//    public String toUpperCase() {
    String str1 = ifunction1.uppCase();//实例对象::普通方法(不带参数)
    System.out.println(str1);

    IFuction2<String> ifunction2  = String :: toUpperCase; //    public String toUpperCase() {
    String str2 = ifunction2.uppCase("avc");//类名称::普通方法(带参数)
    System.out.println(str2);

    IFuction3<Integer,String> ifunction3  = String :: valueOf;//类名称::static方法(带参数) //    public static String valueOf(int i) {
    String str3 = ifunction3.trans(123456);
    System.out.println(str3.length());
    //内建函数式接口
    //1.功能型内建函数式接口:有参数 有返回值
    Function<String,Boolean> fun = "abc123"::startsWith;
    System.out.println("1功能型内建函数式接口:" + fun.apply("abc"));

    //2.消费型内建函数式接口:有参数 无返回值
    Consumer<String> con = System.out::println;
    con.accept("2消费型内建函数式接口:avc");
    //3.供给型内建函数式接口:无参数 有返回值
    Supplier<String> supplier = "abc"::toUpperCase;
    System.out.println("3供给型内建函数式接口:" + supplier.get());
    //4.断言型内建函数式接口:无参数 有返回值
    Predicate<String> predicate = String::isEmpty;
    System.out.println("4断言型内建函数式接口:" + predicate.test("a"));

    Predicate<String> fun_predicate = "abc123"::startsWith;
    System.out.println("5功能_断言型内建函数式接口:" + fun_predicate.test("abc"));
}

}

目录
相关文章
|
23天前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
37 4
|
23天前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
24 4
|
21天前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
24 1
|
22天前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
23 2
|
3月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
376 3
|
4月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
768 4
|
4月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
64 1
|
1月前
|
Oracle Java 关系型数据库
安装 JDK 时应该注意哪些问题
选择合适的JDK版本需考虑项目需求与兼容性,推荐使用LTS版本如JDK 17或21。安装时注意操作系统适配,配置环境变量PATH和JAVA_HOME,确保合法使用许可证,并进行安装后测试以验证JDK功能正常。
51 1
|
1月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
64 1
|
4月前
|
Java 开发工具
开发工具系列 之 同一个电脑上安装多个版本的JDK
这篇文章介绍了如何在一台电脑上安装和配置多个版本的JDK,包括从官网下载所需JDK、安装过程、配置环境变量以及如何查看和切换当前使用的JDK版本,并提到了如果IDEA和JDK版本不兼容时的解决方法。
开发工具系列 之 同一个电脑上安装多个版本的JDK