热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[JAVA]10.JAVA中的Lambda

一个接口实现的简单例子:Printer.javapublicinterfacePrinter{voidprint(Stringmessage);}ConsolePrinter.ja

一个接口实现的简单例子:

Printer.java

public interface Printer {
void print(String message);
}

ConsolePrinter.java

public class ConsolePrinter implements Printer {
@Override
public void print(String message) {
System.out.println(message);
}
}

LambdaDemo.java

public class LambdaDemo {
public static void show(){
//通过实例化实现了接口的类
greet(new ConsolePrinter());
}
public static void greet(Printer printer){
printer.print("你好,master。");
}
}

匿名内部类

为了快捷调用greet方法,可以使用匿名内部类来实现这个接口

public static void show(){
//通过内部匿名类实现了接口的类
greet(new Printer() {
@Override
public void print(String message) {

}
});
}

由于这里只有一个需要实现的函数,所以可以使用lambda函数进行替换

public static void show(){
//通过Lambda函数实现了接口的类
greet(message -> {
System.out.println(message);
});
}

在这个lambda表达式中,只调用了一个方法,所以可以使用方法引用来简化写法:

public static void show(){
//通过引用方法实现了接口的类
greet(System.out::println);
}

函数式接口

这里提到了两种编程模式:imperative program命令式编程,declarative program声明式编程。

public static void main(String[] args) {
List list = List.of(1, 2, 3);
//命令式编程
for (var item:list)
System.out.println(item);
//声明式编程
list.forEach(System.out::println);
}

链式消费者

得益于andThen方法,可以传入消费者,并返回消费者,可以支持链式调用。

Customer.andThen(Customer)


四种函数式接口

四种函数式接口

详见个人总结的Xmind



推荐阅读
  • 探索偶数次幂二项式系数的求和方法及其数学意义 ... [详细]
  • 开发日志:201521044091 《Java编程基础》第11周学习心得与总结
    开发日志:201521044091 《Java编程基础》第11周学习心得与总结 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • Java学习第10天:深入理解Map接口及其应用 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 在 C# 中,循环引用问题通常涉及到对象之间的相互引用,这可能会导致垃圾回收器无法正确释放内存。然而,C# 的垃圾回收机制能够处理大多数循环引用的情况,确保内存得到有效管理。对于静态变量和复杂的数据结构,开发者需要特别注意,以避免潜在的内存泄漏。例如,通过使用弱引用或手动断开引用关系,可以有效解决这些问题。 ... [详细]
  • 本文详细介绍了 jQuery 的入门知识与实战应用,首先讲解了如何引入 jQuery 库及入口函数的使用方法,为初学者提供了清晰的操作指南。此外,还深入探讨了 jQuery 在实际项目中的多种应用场景,包括 DOM 操作、事件处理和 AJAX 请求等,帮助读者全面掌握 jQuery 的核心功能与技巧。 ... [详细]
  • 如何使用和示例代码解析 org.semanticweb.owlapi.model.OWLSubPropertyChainOfAxiom.getPropertyChain() 方法 ... [详细]
author-avatar
书友68570125
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有