前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >lambda表达式(一)

lambda表达式(一)

作者头像
java后端指南
发布2021-05-13 16:51:53
2440
发布2021-05-13 16:51:53
举报
文章被收录于专栏:java后端java后端

今日主题:lambda表达式(一)

简介

lambda表达式是什么呢?是JDK8的一个新特性,他的优势有很多,可以简化很多操作,我们现在来讲讲吧!

环境

  • JDK8

什么是lambda表达式

Lambda是JAVA8添加的一个新的特性。说白了,Lambda就是一个匿名函数。

为什么要用它

使用Lambda表达式可以对一个接口进行非常简洁的实现。

lambda对接口的要求

虽然可以使用Lambda表达式对某些接口进行简单的实现,但是并不是所有的接口都可以用Lambda表达式来实现。要求接口中定义的必须要实现的抽象方法只能是一个。

如何来保证抽象方法只有一个呢?

加一个注解@FunctionalInterface

列如:

代码语言:javascript
复制
//这个注解是用来限制下面这个接口只能有一个抽象方法
@FunctionalInterface
interface Comparator{
 int compare(int a,int b);
}

lambda基础语法

代码语言:javascript
复制
//无返回值,无参数
@FunctionalInterface
public interface LambdaNoneReturnNoneParameter {
 void test();
}

//无返回值,单个参数
@FunctionalInterface
public interface LambdaNoneReturnSingleParameter {
 void test(int n);
}

//无返回值,多个参数
@FunctionalInterface
public interface LambdaNoneReturnMutipleParameter {
 void test(int m,int n);
}

//单个返回值,无参数
@FunctionalInterface
public interface LambdaSingleReturnNoneParameter {
 int test();
}

//单个返回值,单个参数
@FunctionalInterface
public interface LambdaSingleReturnSingleParameter {
 int test(int n);
}

//单个返回值,多个参数
@FunctionalInterface
public interface LambdaSingleReturnMultipleParameter {
 int test(int a,int b);
}

主函数:

可以通过以下的操作来实现函数的简化操作

代码语言:javascript
复制
public class Syntax1 {
 public static void main(String[] args) {
  //1.lambda表达式的基础语法
  //lambda是一个匿名函数
  //参数列表 方法体
  //():用来描述参数列表
  //{}:用来描述方法体
  //->lambda运算符,读作goes to
  
  //无参无返回
  LambdaNoneReturnNoneParameter lambda1=()->{
   System.out.println("hello world");
  };
  lambda1.test();//hello world
  
  //无返回值,单个参数
  LambdaNoneReturnSingleParameter lambda2=(int a)->{
   System.out.println(a);
  };
  lambda2.test(10);//10
  
  //无返回值,多个参数
  LambdaNoneReturnMutipleParameter lambda3=(int a,int b)->{
   System.out.println(a+" "+b);
  };
  lambda3.test(2, 3);//2 3
  
  //有返回值,无参数
  LambdaSingleReturnNoneParameter lambda4=()->{
   return 1;
  };
  System.out.println(lambda4.test());//1
  
  //有返回值,一个参数
  LambdaSingleReturnSingleParameter lambda5=(int a)->{
   return a;
  };
  System.out.println(lambda5.test(5));//5
  
  //有返回值,多个参数
  LambdaSingleReturnMultipleParameter lambda6=(int a,int b)->{
   return a+b;
  };
  System.out.println(lambda6.test(2, 3));//5
 }
}

Lambda第一期结束了,期待与你的第二期!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java后端指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日主题:lambda表达式(一)
    • 简介
      • 环境
        • 什么是lambda表达式
          • 为什么要用它
            • lambda对接口的要求
              • lambda基础语法
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档