Java-函数式接口Lambda,注解的使用

有且只有一个抽象方法的接口。函数式接口适用于函数式编程,在java函数式编程的体现就是

Lambda:()->{}

特点:

延迟加载(解释:满足条件执行,不满足条件不执行,避免性能浪费)

 

定义格式:

修饰符 interface 接口名称{

Public abstract 返回值类型 方法名称(可选参数信息);

}

@FunctionalInterface注解的作用:

用来检测函数式接口是否正确,因为函数式接口只能有一个抽象方法,为了避免就用检测注解,成功后进行编译!

Lambda优化案例-代码详解(于普通拼接字符对比)

packagecn.itcast.Lambda;
publicclassDemo01Logger{
/*消耗内存的传递内容,if语句相同
publicstaticvoidshowLog(intlevel,Stringmessage){传递int类型的等级,日志信息
if(level==1){
	System.out.println(mb.builderMessage());
	}
*/
//使用函数式编程必须存在函数式接口
publicstaticvoidshowLog(intlevel,MessageBuildermb){//传递int类型的等级,接口
if(level==1){
	System.out.println(mb.builderMessage());
	}
}
publicstaticvoidmain(String[]args){
	Stringmsg1="Hellow";
	Stringmsg2="World";
	Stringmsg3="Java";
	/*消耗内存的输出,不管等级是否为一,下面的字符串都会进行拼接
	showLog(level:1,message:msg1+msg2+msg3);
	*/
	//如何等级不等于1,下面这段代码就不是执行;Lambda表达式用()->{}表示
	showLog(1,()->{
	returnmsg1+msg2+msg3;
	});
}
}

注解类代码:

packagecn.itcast.Lambda;
    @FunctionalInterface
    publicinterfaceMessageBuilder{
    publicabstractStringbuilderMessage();
}

函数式接口作为方法的参数

函数式接口作为方法的返回值类型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值