打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
lambda表达式

函数式接口

@FunctionalInterface

@FunctionalInterface

interface GreetingService 

{

    void sayMessage(String message);

}

GreetingService greetService1 = message -> System.out.println("Hello " + message);(JAVA 8 之前一般是用匿名类实现

转自 https://www.runoob.com/java/java8-functional-interfaces.html


lambda表达式条件:函数式接口

表达形式:() -> {},即,参数,箭头,方法体。

lambda是个匿名函数,所以不需要方法名,只需要写出方法体就行。

Predicate<Integer> predicate = n -> n>5;

Predicate<Integer> predicate = n -> n%2==0;

predicate.test(11);


2.方法引用

Predicate<Integer> predicate = n -> n%2==0;

一个程序里,很多地方写了类似这样的条件,碰到需求变更,需要一个一个去改。解决的方法:将条件写在一个方法里,集中在一起,方便改。

Predicate<Integer> predicate = n ->calculate(n);


private static boolean calculate(int n){

return n%2==0;

}

方法引用语法,方法的隶属类::方法名,

例如,将这些写了条件的方法,全部其中到一个类,CalculateGroup

public class CalculateGroup{


public static boolean calculate1(int n){

return n%2==0;

}


public static boolean calculate2(int n){

return n>0;

}


public static boolean calculate3(int n){

return n<5;

}

}

由这个表达Predicate<Integer> predicate = n ->calculate(n);可以换成以下表达(等价)

Predicate<Integer> predicate = CalculateGroup::calculate1;

。。。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
[Java 8] Lambda 表达式实例
lambda表达式Stream流使用
Java教程之Java8.0新特性之Lambda表达式
java中的Stream学习
Java 8简明教程
【Java】基础49:两个函数式接口
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服