JDK8新特性

发布时间:2022-06-27 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了JDK8新特性脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Lambda表达式

lambda表达式是Java8新增特性,它可以用来简化匿名内部类的写法。注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式

lambda表达式的简化格式

(匿名内部类被重写方法的形参列表) -> {
    被重写方法的方法体代码
}

lambda表达式的目标类型必须是"函数式接口",函数式接口代表只包含一个抽象方法的接口。函数式可接口可以包含多个默认方法、类方法,但只能声明一个抽象方法。在函数式接口上都有一个 @FunctionalInterface 注解,该注解用于告诉编译器执行更严格检查——检查该接口必须是函数式接口,否则编译器就会报错

  • 如果Lambda表达式的形参列表只有一个形参,可以省略圆括号
  • 如果Lambda表达式的方法体代码只有一行代码,可以省略花括号
  • 如果Lambda表达式的方法体代码只有一行代码的同时,该条代码是return语句,也可以省略reuturn关键字

java.util.function 包下预定义了大量函数式接口,典型地包含如下四类接口

  • XXXFunction:这类接口中包含apply()抽象方法,该方法对参数进行处理转换,然后返回一个新的值。该函数式接口通常用于对指定数据进行转换处理
  • XXXConsumer:这类接口中包含accept()抽象方法,该方法对参数进行处理,不会返回处理结果
  • XXXPredicate:这类接口中包含test()抽象方法,该方法对参数进行某种判断,然后返回一个boolean值。该接口通常用于判断参数是否满足特定条件,经常用于进行筛滤数据
  • XXXSupplier:这类接口中包含getAsXXX()抽象方法,该方法不需要传入参数,它会按照某种逻辑算法返回一个数据

如果lambda表达式的代码只有一条,还可以在代码块中使用方法引用和构造器引用

种类 实例 说明
引用类方法 类名::类方法 函数式接口中被实现方法的全部参数传给该类方法作为参数
引用特定对象的实例方法 特定对象::实例方法 函数式接口中被实现方法的全部参数传给该方法作为参数
引用某类对象的实例方法 类名::实例方法 函数式接口中被实现方法的第一个参数作为调用者,后面的参数全部传给该方法作为参数
引用构造器 类名::new 函数式接口中被实现方法的全部参数传给该构造器作为参数

脚本宝典总结

以上是脚本宝典为你收集整理的JDK8新特性全部内容,希望文章能够帮你解决JDK8新特性所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: