zoukankan      html  css  js  c++  java
  • 使用起来最简洁的Java语法

      我今天开始学习方法报价,它是lambda表达式的进一步简化版本,语法应该更简洁。
      1.方法参考
      有一个需求:
      将字符串中的所有信息转换为大写字母,然后将其打印出来。
      使用功能性编程思想编写代码。
      1.Lambda表达式编写
      ①功能界面可打印
      这是一个带有抽象方法printMsg()的自定义打印接口,用于打印信息
      ②lambda表达式
      method方法中有两个参数,lambda表达式表示接口的实现类对象。在lambda表达式中,已经编写了业务逻辑。
      什么是业务逻辑?
      我的理解是方法的内容:根据什么参数获得什么结果。
      在上面的示例中:根据传递的字符串消息(即参数msg)
      结果是将所有味精更改为大写字母(msg.toUpperCase)
      这是业务逻辑。当然,我给出的示例非常简单,实际上它必须复杂得多。
      2.方法参考
      方法引用用于替换更简洁的lambda表达式。从某种意义上说,它们具有相似的功能。
      ①方法参考
      具体格式为:newMyPrint()::printMsg
      核心是双冒号“::”,如何理解这种格式?
      可以理解,MyPrint对象正在调用printMsg方法。
      为什么可以这种方式直接使用它?因为它的逻辑已经存在,即MyPrint类中的PrintMsg方法及其业务逻辑
      ②业务逻辑
      将字符串msg更改为所有大写字母,这等效于重写MyPrint类的接口中的abstract方法。
      3.方法参考和lambda表达式:
      现在的问题来了:方法不是引用了lambda表达式的简化形式吗?您如何看待代码变得越来越麻烦?
      让我们看一下①,方法引用比lambda表达式更简单吗?
      如果使用方法引用,则无论使用多少次业务逻辑,我都只需编写一次,然后在其他时间直接调用它;
      如果使用lambda表达式,则每次调用时都要编写业务逻辑。
      因此,该方法引用的简洁之处在于不必重复编写相同的逻辑。
      通过这种方式可以理解,方法引用比lambda表达式简单得多,尤其是在业务逻辑非常复杂的情况下
      当然,方法参考的前提是:业务逻辑已经存在。
      如果逻辑已经存在,我可以使用方法参考,
      如果逻辑不存在,请乖乖地编写lambda表达式。
      二,其他方法参考
      上例中的方法引用是对象引用方法,除对象引用外,还有许多其他方法。
      1.类名参考
      如果它是静态方法,则可以使用类名直接调用该方法。
      Java的底层已经编写了很多工具类,其大多数方法都是静态方法,直接使用方法引用更为方便。
      Math是一个工具类,它具有一个静态方法abs()。
      因此,方法引用直接用类名引用了abs方法,因为其中的逻辑已经在Java的底部编写了。
      类名参考格式如下:
      lambda表达式:number->Math.abs(number)
      方法参考:Math::abs
      当然,方法参考也有局限性,例如,我现在需要绝对值的10倍。
      lambda表达式直接更改业务逻辑。
      但是无法使用方法引用,因为Java底部没有这样的业务逻辑。即使我们需要使用方法引用,我们也必须首先编写逻辑。
      2.通过此引用成员方法
      编写这样的代码只是为了获得良好的观看效果,这不是标准的做法,因此它们是一起编写的。
      此参考格式如下:
      lambda表达式:name->this.introduce(name)
      方法参考:this::introduce
      在这方面,这是此类的代表。此类中已经有一个介绍方法。然后,我使用它来引用此类中的相应方法。
      3.通过super引用成员的方法
      如果MyClass具有父类,则具有fuIntroduce方法,如果要引用此方法,则可以使用super关键字。
      用法与此相同,因此不再赘述。
      超级参考格式如下:
      lambda表达式:name->super.fuIntroduce(name)
      方法参考:super::fuIntroduce
      Super代表父类,并且父类中已经有fuIntroduce方法,然后我使用super来引用父类中的相应方法。
      4.类构造函数参考
      类结构具有以下格式:
      lambda表达式:name->newPerson(name)
      方法参考:Person::new
      Person::new等效于创建对象(newPerson())
      不要看这段代码的复杂性,实际上它等同于新对象。
      当然,对类构造函数的理解并不充分。暂时,只需记住方法引用并使用它来创建对象。
      5.数组构造函数参考
      数组也是Object的子类,因此它们也具有构造函数,但是语法略有不同。
      数组构造函数的格式如下:
      lambda表达式:length->newint[length]
      方法参考:int[]::new
      与类构造函数相同的原因:
      int[]::new等效于创建一个数组(newint[length])

  • 相关阅读:
    DIV指令一般用法
    "Programming"和"Programming"是同一个"Programming"吗?
    对5个国家的名称进行排序详细解析
    Hello World程序
    用 select 实现多选
    浅谈HTTP中Get与Post的区别
    ligerUI 下拉框表格(多选)
    LigerUI自带弹窗返回值例子
    LigerUI Grid服务端分页技术
    jQuery LigerUI 插件介绍及使用之ligerGrid
  • 原文地址:https://www.cnblogs.com/hite/p/13037668.html
Copyright © 2011-2022 走看看