什么是Lambda表达式-,java中lambda用法

  什么是Lambda表达式?,java中lambda用法

  这篇文章带给你一些java的知识,主要是关于lambda表达式的知识。Lambda expression是JDK8启动后新的语法形式,可以简化匿名内部类的代码编写。下面就来看看吧,希望对你有帮助。

  

  如何解决写爬虫IP受阻的问题?立即使用。

  

Lambda概述

   Lambda表达式是JDK8启动后的新语法形式。

  作用:简化匿名内部类的代码编写

  格式:

  (匿名内部类的重写方法的参数列表)-{

  重写方法的方法体代码

  }

  注意:——是语法形式,没有实际意义。首先我们定义一个抽象类,通过匿名内部类重写它的方法,然后简化它,比较它们之间的变化:

  在使用Lambda表达式之前:

  公共静态void main (String[] args){

  People p=新人(){

  @覆盖

  公共无效运行(){

  System.out.println(小学生跑得很慢);

  }

  };

  p . run();

  }

  抽象类人{

  公共抽象void run();

  }使用Lambda表达式后:

  People p=()-{

  System.out.println(小学生跑得很慢);

  };

  //会有错误,会有误差。这是为什么呢?原因是之前对Lambda表达式的定义不明确。Lambda表达式无法简化所有匿名内部类,其只能简化函数式接口匿名内部类的写法形式,且接口中有且仅有一个抽象方法。通常,我们会在接口上添加一个@Functionalinterface注释,以标记接口必须是功能性的。

  实际上通过Lambda表达式简化了:

  @FunctionalInterface//用这个标注,一定是只有一个抽象方法的函数接口。

  界面人员{

  空运行();

  }

  //简化前面的匿名内部类

  People p=新人(){

  @覆盖

  公共无效运行(){

  System.out.println(小学生跑得特别慢!);

  }

  };

  //简化后

  People p=() - {

  System.out.println(小学生跑得特别慢!);

  };此外,它还可以用作方法中的参数:

  //在原有基础上定义一个pk方法

  公共静态无效主键(人员p){

  System.out.println(运行情况如何:)

  p . run();

  }

  //不使用Lambda:

  PK(p);//定义匿名内部类后需要代入P;

  //当使用Lambda时:

  People p=() - {

  System.out.println(小学生跑得特别慢!);

  };

  主键(()- {

  System.out.println(小学生跑得特别慢!);

  });

  //由于人创建的对象P在等号的右边,所以可以直接代入

Lambda实战的作用

  。在之前的学习过程中,我们学习了数组,有一种排序方法(可以对数组进行升序或降序排序)。它实际上是一个接口类,只有一个抽象方法:

  //精简前:

  Arrays.sort(grade,new ComparatorInteger(){

  @覆盖

  public int compare(整数o1,整数o2){

  返回O2-O1;

  }

  });

  //精简后:

  Arrays.sort(grade,(整数o1,整数o2) - {

  返回O2-O1;

  });

Lambda表达式省略规则

  参数类型可以省略。//参考前面的实际例子。

  Arrays.sort(grade,(整数o1,整数o2) - {

  返回O2-O1;

  });

  //省略参数类型后

  Arrays.sort(grade,(o1,o2){

  返回O2-O1;

  });如果只有一个参数,可以省略参数类型,也可以省略()。//简单的引用单个参数的例子,不知道它的具体含义。

  BTN . addactionlistener((ActionEvent e)-{

  System.out.println(我就是一个简单的例子。);

  });

  //简化后:

  btn.addActionListener( e - {

  System.out.println(我就是一个简单的例子。);

  });如果Lambda表达式的方法体代码只有一行代码。可以省略花括号和分号。//参考前面规则的例子。

  btn.addActionListener( e - {

  System.out.println(我就是一个简单的例子。);

  });

  //简化后:

  BTN . addactionlistener(e-system . out . println(我就是一个简单的例子。) );如果Lambda表达式的方法体代码只有一行代码。可以省略花括号,不用写。此时,如果这行代码是return语句,return必须省略,并且;不要写//参考第一条规则的代码

  Arrays.sort(grade,(整数o1,整数o2) - {

  返回O2-O1;

  });

  //简化后:

  Arrays.sort(grade,(o1,O2)-O2-O1);推荐:《java视频教程》以上是如何理解Java中lambda表达式的细节。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: