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

成品网站和模板建站网站建设教程.

成品网站和模板建站,网站建设教程.,做镜像网站利润,安徽建设工程协会网站原文作者#xff1a;编程一只蝶原文标题#xff1a;Java8语法糖之Lambda表达式发布时间#xff1a;2021-02-16 13:08:40一、Lambda表达式简介Lambda表达式#xff0c;是Java8的一个新特性#xff0c;也是Java8中最值得学习的新特性之一。(另一个新特性是流式编程。)Lambda…原文作者编程一只蝶原文标题Java8语法糖之Lambda表达式发布时间2021-02-16 13:08:40一、Lambda表达式简介Lambda表达式是Java8的一个新特性也是Java8中最值得学习的新特性之一。(另一个新特性是流式编程。)Lambda表达式从本质上讲是一个匿名方法。可以使用这个匿名方法实现接口中的方法。功能通常使用Lambda表达式是为了简化接口实现的。关于接口实现可以有多种方式实现例如①设计接口的实现类、②使用匿名内部类。但是③使用lambda表达式比这两种方式都简单。要求lambda表达式只能实现函数式接口即一个接口中要求实现类必须实现的抽象方法有且只有一个。FunctionalInterface注解 用在接口之前用来判断接口是否是一个函数式接口。如果不是函数式接口会报错。功能类似于Override。二、Lambda表达式语法lambda表达式本质上是一个匿名方法因此再写lambda表达式时不需要关心方法名是什么也不需要关心返回值类型。只需要关心两部分参数列表、方法体。()参数部分方法的参数列表要求和实现的接口中的方法参数部分一致包括参数的数量和类型。{}方法体部分方法的实现部分如果接口中定义的方法有返回值则在实现时注意返回值的返回。- 分隔参数部分和方法体部分。Lambda表达式基础语法:(参数) -{方法体}下面定义6种参数和返回值各不相同的函数式接口,分别使用lambda表达式对接口中的方法进行实现下面是针对上面6种函数式接口的lambda表达式实现。/*** Description:* author Guoqianliang* date 19:50 - 2021/2/15*/public class BasicSyntax {public static void main(String[] args) {// 1.实现无参数,无返回值的函数式接口NoneReturnNoneParameter lambda1 () - {System.out.println(这是无参,无返回值的方法);};lambda1.test();// 2.实现一个参数,无返回值的函数式接口NoneReturnSingleParameter lambda2 (int a) - {System.out.println(这是一个参数,无返回值的方法,参数a: a);};lambda2.test(10);// 3.实现多个参数,无返回值的函数式接口NoneReturnMutipleParameter lambda3 (int a, int b) - {System.out.println(这是多个参数,无返回值的方法,参数a a ,b b);};lambda3.test(10, 20);// 4.实现无参数,有返回值有返回值的函数式接口SingleReturnNoneParameter lambda4 () - {System.out.println(这是无参数,有返回值的方法,返回值是:);return 10;};System.out.println(lambda4.test());// 5.实现一个参数,有返回值的函数式接口SingleReturnSingleParameter lambda5 (int a) - {System.out.println(这是一个参数,有返回值的方法,返回值是:);return a;};System.out.println(lambda5.test(10));// 6.实现多个参数,有返回值的函数式接口SingleReturnMutipleParameter lambda6 (int a, int b) - {System.out.println(这是多个参数,有返回值的方法,返回值是:);return a b;};System.out.println(lambda6.test(1, 2));}}语法精简进阶参数列表的参数类型可以省略。如果参数列表中的参数有且只有一个可以省略小括号。如果方法体中只有一条语句可以省略大括号。(注如果这条语句是返回语句省略了大括号后也要把return关键字省略)三、函数引用lambda表达式是为了简化接口。在lambda表达式中不应该出现比较复杂的逻辑。如果需要处理的逻辑比较复杂一般情况会单独写一个方法。在lambda表达式中直接引用这个方法即可。即引用一个已经存在的方法使其代替lambda表达式完成接口的实现。1.静态方法引用语法类::静态方法在引用的方法后面不要添加小括号。引用的这个方法参数(数量、类型)和返回值必须要跟接口中定义的一致。/*** Description: 方法引用* author Guoqianliang* date 0:26 - 2021/2/16*/public class Lambda1 {private static interface Calculate {int calculate(int a, int b);}private static int calculate(int x, int y) {if (x y) {return x - y;} else if (x y) {return y - x;}return x y;}public static void main(String[] args) {// 静态方法引用Calculate calculate Lambda1::calculate;System.out.println(calculate.calculate(10, 20));}}2.非静态方法引用语法对象::非静态方法在引用的方法后面不要添加小括号。引用的这个方法参数(数量、类型)和返回值必须要跟接口中定义的一致。/*** Description: 方法引用* author Guoqianliang* date 0:26 - 2021/2/16*/public class Lambda1 {private static interface Calculate {int calculate(int a, int b);}// 非静态方法private int calculate2(int a, int b) {if (a ! b) {return a - b;}return a b;}public static void main(String[] args) {// 非静态方法引用Calculate calculate2 new Lambda1()::calculate2;System.out.println(calculate.calculate(10, 20));}}3.构造方法引用语法类名::new可以通过接口中的方法的参数区分引用不同的构造方法。如果某一个函数式接口中定义的方法仅仅是为了得到一个类的对象。此时就可以使用构造方法的引用简化这个方法的实现。/*** Description: 构造方法引用* author Guoqianliang* date 11:20 - 2021/2/16*/public class Lambda2 {FunctionalInterfaceprivate interface GetPersonWithNoneParameter {Person get();}FunctionalInterfaceprivate interface GetPersonWithSingleParameter {Person get(String name);}FunctionalInterfaceprivate interface GetPersonWithMutipleParameter {Person get(String name, int age);}private static class Person {String name;int age;public Person() {System.out.println(Person类的无参构造方法执行了);}public Person(String name) {this.name name;System.out.println(Person类的有参构造方法执行了);}public Person(String name, int age) {this.name name;this.age age;System.out.println(Person类的两个参数的构造方法执行了);}}public static void main(String[] args) {// 1.使用lambda表达式,实现GetPersonWithNoneParameter接口GetPersonWithNoneParameter getPerson Person::new;// 2.使用lambda表达式,实现GetPersonWithSingleParameter接口GetPersonWithSingleParameter getPerson2 Person::new;// 3.使用lambda表达式,实现GetPersonWithMutipleParameter接口GetPersonWithMutipleParameter getPerson3 Person::new;System.out.println(getPerson.get());System.out.println(getPerson2.get(树先生));System.out.println(getPerson3.get(你好, 23));}}4.对象方法的特殊引用使用lambda表达式实现某些接口时如果lambda表达式中包含了某一个对象此时方法体中直接使用这个对象调用它的某一个方法就可以完成整体的逻辑。/*** Description: 对象方法的特殊应用* author Guoqianliang* date 11:54 - 2021/2/16*/public class Lambda3 {FunctionalInterfaceprivate interface MyInterface {// String get(Person person);void set(Person person, String name);}private static class Person {private String name;public void setName(String name) {this.name name;}public String getName() {return name;}}public static void main(String[] args) {Person p1 new Person();p1.setName(小明);// 逻辑实现只是为了获取到对象的名字// MyInterface lambda2 Person::getName;// System.out.println(lambda2.get(p1));// 逻辑实现只是为了给对象的某些属性进行赋值MyInterface lambda1 (x, n) - x.setName(n);MyInterface lambda2 Person::setName;lambda2.set(p1, 李华);System.out.println(p1.getName());}}四、Lambda表达式需要注意的问题如果用到局部变量默认会被声明为常量不能发生值的改变。/*** Description:* author Guoqianliang* date 13:05 - 2021/2/16*/public class Lambda4 {public static void main(String[] args) {// 1.定义一个局部变量int x 10;// 2.使用lambda表达式实现接口LambdaTest lambda () - {System.out.println(x x);};// 3. 无法修改常量x// x20;}}FunctionalInterfaceinterface LambdaTest {void test();}Post Views:9
http://wiki.neutronadmin.com/news/102766/

相关文章:

  • 网站内页怎样做优化百姓网二手房
  • wordpress可以做电影网站吗网页设计形考作业2
  • 网站备案登录密码找回在线编辑图片的网站有哪些
  • 东营企业网站建设wordpress长文章自动分页
  • 网站建设的项目总结网站建设的基本流程可分为
  • 生意宝做网站行吗vs2008不能新建网站
  • 网站开发如何共用菜单栏宜宾市珙县住房城乡建设网站
  • 竹中建设官方网站wordpress配置qq邮箱
  • it外包公司简介西安seo技术
  • 江苏省网站建设网站用户体验是什么
  • 莱芜企业建站公司哪个网站推广好
  • 没电脑可以建网站吗wordpress sae 上传
  • 网站建设 环保素材手机网站模板 php
  • 网站建设客户常见问题集锦重庆网站推广免费软件
  • 福建省建设干部网站黄冈网站建设优化排名
  • 行业做门户网站挣钱吗wordpress修改侧边栏
  • 装饰网站建设策划书微信微商城在哪里进入
  • 网站建设沟通外包接单网
  • 火锅自助餐网站建设床上用品网站源码
  • 零食天堂 专做零食推荐的网站梧州网站设计公司
  • 五是做好纪检监察网站建设wordpress自定义注册页面模板
  • 成都网站建设需多少钱离婚律师免费咨询
  • 如何给自己网站做网站优化做地方旅游网站
  • 维护一个网站要多少钱大型网站系统
  • html5 微网站模版广州专业网站建设报价
  • 怎样做论坛网站最近时事热点新闻事件
  • 网站 制作 技术过时vps远程桌面服务器
  • 北京华夏建设有限公司网站金融软件网站建设公司
  • 怎么做像天猫类似的网站wordpress自带播放器进度条
  • 现代示范校建设专题网站家具网站开发目的