lambda表达式 拉姆达

编程入门 行业动态 更新时间:2024-10-28 16:22:02

lambda<a href=https://www.elefans.com/category/jswz/34/1771310.html style=表达式 拉姆达"/>

lambda表达式 拉姆达

lambda表达式 拉姆达

 

学习这个之前,需要明确

有一种接口叫做函数式接口,只允许接口里面只有一个函数

可以使用

@FunctionalInterface进行注解

如果这个接口里面定义了两个方法,就会报错,当然,这种接口主要是针对lambda表达式使用

函数式接口允许:

1.定义默认方法

2.定义静态方法

3.定义Object里的public方法

 

明确了这一点,然后再去学习lambda表达式,下面这个是自己在学习发送邮件的时候,看到的,接口需要自己重新实现prepare方法,因为是一个void方法,传入参数类型是可以不指定的,所以,就可以使用lambda表达式进行接口实例化。

MimeMessagePreparator messagePreparator = mimeMessage -> {MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);messageHelper.setFrom(sender,senderName);messageHelper.setTo(receiver);messageHelper.setSubject(subject);messageHelper.setText(message);};MimeMessagePreparator mimeMessagePreparator = new MimeMessagePreparator() {@Overridepublic void prepare(MimeMessage mimeMessage) throws Exception {MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);messageHelper.setFrom(sender,senderName);messageHelper.setTo(receiver);messageHelper.setSubject(subject);messageHelper.setText(message);}};

lambda表达式学会以后,确实发现是比较简洁的写法,因为对于接口的实例化变得更加的简洁,而且,最重要的是,其他的问题不大,对于comparable接口的实例化就会更加的清晰

刚写的例子,会少好多行代码

Collections.sort(a,new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {// TODO Auto-generated method stubreturn -1;}});Collections.sort(a, (o1,o2) -> {return -1;});

然后,只是需要注意一点的是,对于直接实例化,是可以指定

package com.gsy;public class EmailProperty {public static void main(String args[]) {new EmailProperty();}interface qqq{int a(int a);}interface ppp{int a(int b);}class test{int a;int b;int testa(int a,int b,qqq qqq){return 1;}int testa(int a,int b,ppp ppp){return 1;}}public EmailProperty() {test aaa = new test();aaa.a = 1;aaa.b = 2;aaa.testa(1, 2,new ppp() {@Overridepublic int a(int b) {// TODO Auto-generated method stubreturn 0;}});aaa.testa(1, 2,	(qqq) i ->  {return -1;});}
}

by the way 关于指定lambda表达式实例化是Stack Overflow上外国友人回答的- -,百度百度不到- -

更多推荐

lambda表达式 拉姆达

本文发布于:2023-06-17 08:23:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/756058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:表达式   拉姆   lambda

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!