当前位置: 首页 > news >正文

网站充值这么做宁晋seo网站优化排名

网站充值这么做,宁晋seo网站优化排名,商务网站建设的一般流程是什么,网页微信登录不了提示为了安全考虑Lambada表达式全面详解 文章目录 Lambada表达式全面详解前言入门类名引用静态方法对像名引用方法构造器引用 前言 Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中…

Lambada表达式全面详解

文章目录

  • Lambada表达式全面详解
    • 前言
    • 入门
    • 类名引用静态方法
    • 对像名引用方法
    • 构造器引用


前言

Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。JDK 也提供了大量的内置函数式接口供我们使用,使得 Lambda 表达式的运用更加方便、高效。
虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用 Lambda 表达式来实现。Lambda 只能针对只有一个抽象方法的接口实现。

函数式接口:
接口有且仅有一个抽象方法才能使用lambad表达式。
函数式接口是指,有且仅有一个抽象方法的接口。
Java8引入了注解@FunctionalInterface修饰函数式接口的,要求接口中的抽象方法只有一个。

方法的引用:
Lambda主体只有一条语句时,程序可以省略主体大括号,还可以通过英文“ :: ”来引用方法和构造器。两种方式:

种类Lambda表达式对应引用示例
类名引用普通方法(x,y,…)->对象名x.类普通方法(x,y,…)类名 :: 类普通方法
类名引用静态方法(x,y,…)->类名.类静态方法(x,y,…)类名 :: 类静态方法名
对像名引用方法(x,y,…)->对象名.实例方法(x,y,…)对象名 :: 实例方法名
构造器引用(x,y,…)->new 类名(x,y,…)类名 :: new

入门

代码示例:

public class Test {//函数式接口:用于声明方法   interface Person {void say();}interface Person2 {int custom(int i, int j);}//客户端:调用接口方法,可以自定义传入参数    public static void test(Person person) {//...        person.say();}public static void test2(Person2 person2) {int i = 10;int j = 5;//...       System.out.println(person2.custom(i, j));}//测试public static void main(String[] args) {//匿名内部类      test(new Person() {@Overridepublic void say() {System.out.println("*********");}});//lambada表达式:提供方法实现方式       test(() -> {System.out.println("**************");});test2((x, y) -> x + y);test2((x, y) -> x - y);}
}

lambada表达式完全可以看作是简化匿名内部类的写法,因此学习lambada可以以匿名内部类的去理解。

学习Lambada只是学习表达式的写法,并没有新技术可言。

类名引用静态方法

public class Test3 {private static void printAbs(int num, Calcable calcable) {System.out.println(calcable.calc(num));}public static void main(String[] args) {//lambda表达式      printAbs(-10, num -> Math.abs(num));//方法引用        printAbs(-10, Math::abs);}
}@FunctionalInterface
interface Calcable {int calc ( int num);
}class Math {public static int abs(int num) {if (num < 0) {return -num;} else {return num;}}
}

对像名引用方法

public class Test3 {private static void printAbs(int num, Calcable calcable) {System.out.println(calcable.calc(num));}public static void main(String[] args) {Math math = new Math();//lambda表达式       printAbs(-10, num -> math.abs(num));//方法引用        printAbs(-10, math::abs);}
}@FunctionalInterface
interface Calcable {int calc(int num);
}class Math {public int abs(int num) {if (num < 0) {return -num;} else {return num;}}
}

构造器引用

public class Test3 {    private static void printName(String name, PersonBuild build){  System.out.println(build.buildPerson(name).getName()); }    public static void main(String[] args) {     //lambda表达式        printName("junjie",name -> new Person(name));      //方法引用       printName("junjie",Person :: new);    }
}
@FunctionalInterface
interface PersonBuild{    Person buildPerson(String name);
}
class Person{   String name;    public Person(String name) {  this.name = name; }    public String getName() {   return name;}   public void setName(String name) {        this.name = name;   }
}
http://www.yayakq.cn/news/532204/

相关文章:

  • php建站系统哪里有做枪网站的
  • 网站出售局域网端口映射做网站
  • 做擦边球的网站杭州城西做网站的公司
  • 数字博物馆网站建设内容e点互动网站
  • 网站建设的重点是什么天猫网站设计特点
  • 清远网站建设公司有没有外包活的网站
  • 电商网站建设目的wordpress数据库替换
  • 邢台网站建设最新报价php网站建设的公司
  • 智慧团建网站什么时候维护好网络推广seo怎么做
  • 高端品牌网站建设九五网络外国网站界面
  • 专门做鞋子的网站吗中国建设银行网站会员可以改名
  • 免费个人建站系统网络营销的特点主要包括
  • 电子商务网站推广实训心得北京百度关键词优化
  • 网站开发容易做吗建设网站的产品规划
  • 深圳哪里有网站建设如何查看网站的关键词
  • wordpress 点评类网站成都定制公交app
  • 广西网站建设专门做销售招聘网站
  • 北京手机网站北京建网站找哪个公司
  • 网站开发 前端 后端 如何结合网站建设分期收费
  • 渭南网站开发开发板组装实验报告
  • 如何选择网站营销公司建网站 温州
  • 南京网站建设公司排名德州中文网站建设
  • 网站设计论文框架修改wordpress后台登录
  • 影响网站速度的因素桐乡市住房建设局网站公示
  • 番禺网站制作技术做网站西美花街
  • 工信和信息化部网站保定网站建设技术支持
  • 个人博客网站开发历程小影wordpress主题
  • 夏天做哪个网站能致富精美个人网站
  • 域名对网站有什么影响吗做设计什么兼职网站
  • 青海网站 建设网站空间登陆