「Java」方法引用,使用起来最简洁的Java语法( 二 )


Math是一个工具类 , 它有一个静态方法abs() 。

【「Java」方法引用,使用起来最简洁的Java语法】所以方法引用直接用类名引用abs方法 , 因为其中的逻辑在Java底层就已经写好了 。
类名引用格式如下:

  • lambda表达式:number->Math.abs(number)
  • 方法引用:Math::abs
当然这里面方法引用也有一个局限性 , 比如说我现在要求得到10倍的绝对值 。
lambda表达式直接改业务逻辑就好了;
但是方法引用没办法 , 因为Java底层没有这样的业务逻辑 , 就算要用方法引用 , 我们也得先将逻辑写出来 。
2.通过this引用成员方法
代码这样写并不规范 , 只是为了好观看 , 所以将它们写在一起了 。

this引用格式如下:
  • lambda表达式:name->this.introduce(name)
  • 方法引用:this::introduce
这里面this就是代表本类 , 本类中已经有introduce方法了 , 那我用this引用的就是本类中对应的方法 。
3.通过super引用成员方法
如果MyClass有个父类 , 它里面有一个fuIntroduce方法 , 若是要引用该方法 , 可以使用super关键字 。
使用方式和this是一样的 , 就不再阐述了 。
super引用格式如下:
  • lambda表达式:name->super.fuIntroduce(name)
  • 方法引用:super::fuIntroduce
super就是代表父类 , 父类中已经有fuIntroduce方法了 , 那我用super引用的就是父类中对应的方法 。
4.类的构造器引用
类构造其格式如下:

  • lambda表达式:name->new Person(name)
  • 方法引用:Person::new
Person::new就相当于创建对象(new Person())

不要看这代码写的这么复杂 , 其实上就相当于new对象 。
当然类的构造器这一块理解的还不算透彻 , 暂且只需要记住方法引用这样使用就是在创建对象就好了 。
5.数组的构造器引用
数组也是Object的子类对象 , 所以同样具有构造器 , 只是语法稍有不同 。
数组构造器格式如下:

  • lambda表达式:length->new int[length

  • 方法引用:int[
    ::new
和类的构造器是一样的道理:

int[
::new就相当于创建数组(new int[length
)
总结:
谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你