- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java 函数式接口
Java 函数式接⼜ Java Lambda - Java函数式接⼜ 函数式接⼜是具有⼀个⽅法的接⼜,⽤作lambda表达式的类型。 public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent event); } ActionListener 只有⼀个⽅法actionPerformed。它是⼀个函数式接⼜。⽆论 调⽤什么单⼀⽅法,只要Java编 器具有兼容的⽅法签名,Java编 器就会将其匹配 到您的lambda表达式。 lambda表达式表⽰函数式接⼜的实例。 lambda表达式的类型是⼀个函数式接⼜类型。 (String str) - str.length() str .length() 获取⼀个String参数并返回其长度。 它的类型可以是任何具有抽象⽅法的函数接⼜类型,它使⽤String作为参数并返回 int 。 以下是这种函数式接⼜的⽰例: @FunctionalInterface interface Processor { int getStringLength(String str); } 我们可以为其函数式接⼜实例赋值lambda表达式。 Processor stringProcessor = (String str) - str.length(); 例⼦ 在下⾯的代码中,我们为其函数接⼜赋值⼀个lambda表达式。然后我们通过调⽤函数 接⼜中定义的⽅法来执⾏lambda表达式,并传⼊⼀个参数。 public class Main { public static void main(String[] argv) { Processor stringProcessor = (String str) - str.length(); String name = Java Lambda; int length = stringProcessor.getStringLength(name); System.out.println(length); } } @FunctionalInterface interface Processor { int getStringLength(String str); } 上⾯的代码⽣成以下结果。 注意 lambda表达式本⾝不能⽤作独⽴的表达式。 lambda表达式的类型由编 器推断。 Java函数式接⼜定义 函数式接⼜是具有⼀个抽象⽅法的接⼜。 我们不能使⽤以下类型的⽅法来声明⼀个函数式接⼜: 默认⽅法 静态⽅法 从Object类继承的⽅法 ⼀个函数式接⼜可以重新声明Object类中的⽅法。该⽅法不被视为抽象⽅法。因此, 我们可以声明lambda表达式使⽤的另⼀种⽅法。 考虑 java.util 包中的Comparator类,如下所⽰: package java.util; @FunctionalInterface public interface ComparatorT { // An abstract method declared in the functional interface int compare(T o1, T o2); // Re-declaration of the equals() method in the Object class boolean equals(Object obj); ... } Comparator接⼜有两个抽象⽅法: compare()和 equals()。 equals()⽅法是Object类中的 equals()⽅法的重新声明。 @FunctionalInterface注释 @FunctionalInterface 注释在j ava.lang包中定义。我们可以选择使⽤它来标记⼀ 个函数式接⼜。 如果注释 @FunctionalInterface 在⾮函数式接⼜或其他类型 (如类)上注释, 则会发⽣编 时错误。 具有⼀个抽象⽅法的接⼜仍然是⼀个功能接⼜,即使我们不⽤ @FunctionalInterface 注释。 public class Main { public static void main(String[] argv) {
您可能关注的文档
最近下载
- 人教版(2024)八年级上册英语Unit 7 When Tomorrow Comes.教案.docx
- 无机及分析化学教学课件作者十一五电子教案教学课件作者含习题解答叶芬霞第11章-新(645KB).ppt VIP
- 2025重庆市公安局沙坪坝区分局辅警招聘192人笔试参考题库附答案解析.docx VIP
- 《自动喷水灭火系统施工及验收规范》GB50261-2017.docx VIP
- 法律职业伦理-王进喜-全套课件.pptx
- 职业技术学院毕业生岗位实习管理办法(试行).docx VIP
- 2025重庆市公安局沙坪坝区分局辅警招聘192人笔试备考题库及答案解析.docx VIP
- 全民国防教育知识竞赛题库附答案(50题含答案).docx VIP
- 智能底盘 线控悬架系统、机械制动系统控制单元技术要求.pdf VIP
- 2025重庆市公安局沙坪坝区分局辅警岗位招聘192人笔试参考题库附答案解析.docx VIP
文档评论(0)