首页 > 其他分享 >方法引用(进一步简化Lambda)

方法引用(进一步简化Lambda)

时间:2024-05-27 14:04:25浏览次数:15  
标签:price Cooking 简化 引用 方法 o2 o1 Lambda

静态方法的引用

格式:类名::静态方法

场景:如果某个Lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用。

//静态方法的引用
Arrays.sort(cooking, CompareByData::compareByPrice);

public class CompareByData{
    public static int compareByPrice(Cooking o1, Cooking o2){
        return o1.price - o2.price;
    }
}

实例方法的引用

格式:对象名::实例方法

场景:如果某个Lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用。

//实例方法的引用
CompareByData com = new CompareByData();
Arrays.sort(cooking, com::compareByPriceD);

public class CompareByData{
    public static int compareByPrice(Cooking o1, Cooking o2){
        return o1.price - o2.price;
    }

    public int compareByPriceD(Cooking o1, Cooking o2){
        return o1.price - o2.price;
    }
}

特定类型方法的引用

格式:类型::方法。

场景:如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。

//特定类型方法的引用
String[] names = {"a", "D", "b", ""S};
Arrays.sort(names, String::compareToIgnoreCase);

构造器引用

格式:类名::new

场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。

//构造器引用
CreateCooking cc = Cooking::new;

标签:price,Cooking,简化,引用,方法,o2,o1,Lambda
From: https://blog.csdn.net/2301_81718046/article/details/139187058

相关文章

  • Lambda表达式
    1.介绍:Lambda表达式是JDK8开始新增的一种语法形式。2.作用:用于简化匿名内部类的代码写法。3.注意: Lambda表达式只能简化函数式接口的匿名内部类。4.函数式接口:有且仅有一个抽象方法的接口。5.注意:大部分函数式接口上面都可能会有一个@FunctionalInterface的注解,有该注......
  • day14--Lambda、方法引用、算法、正则表达式、数据结构
    day14–Lambda、方法引用、算法、正则表达式、数据结构一、Arrays类接下来我们学习的类叫做Arrays,其实Arrays并不是重点,但是我们通过Arrays这个类的学习有助于我们理解下一个知识点Lambda的学习。所以我们这里先学习Arrays,再通过Arrays来学习Lamdba这样学习会更丝滑一些_.......
  • Java SE入门及基础(53)& 方法引用
    目录方法引用1.应用场景示例分析2.方法引用符示例解释说明3.静态方法引用语法示例4.成员方法引用语法示例示例5.this引用成员方法语法示例6.super引用父类成员方法语法示例7.构造方法引用语法示例方法引用1.应用场景方法引用   来......
  • Lambda表达式的使用以及函数式接口
    目录Lambda表达式1.什么是Lambda表达式2.Lambda表达式的使用3.Lambda表达式的写法规则(以以上例子来说)4.要注意的要点方法引用 函数式接口1.什么是函数式接口2.函数是接口的自定义使用3.JDK自带的函数式接口总结 Lambda表达式1.什么是Lambda表达式Lambda表达......
  • C++入门(3) 指针和引用的区别|引用的本质|引用小结|inline函数|缺省函数
    一,引用引用和指针的区别1,从语法规则上讲指针变量存储某个实例(变量或者对象)的地址;引用是某个实例的别名程序为指针变量分配内存空间;不为引用分配内存空间指针变量的值可以改变;引用一旦初始化就无法改变指针变量可以为NULL;但是没有空引用指针作为形参需要判断是否为空;引用......
  • 探索SPI单线传输模式:时钟线与数据传输的简化之道
    探索SPI单线传输模式:时钟线与数据传输的简化之道在当今的嵌入式系统和微控制器通信中,串行外设接口(SPI)因其高速、全双工和同步的特点而广受欢迎。然而,随着设备尺寸和复杂性的不断减少,对SPI通信的简化需求也日益增加。在这种背景下,SPI的单线传输模式成为了一个备受关注的解决方案。......
  • C++基础知识学习笔记(4)——引用
    学习参考:https://www.bilibili.com/video/BV1et411b73Z?p=89&spm_id_from=pageDriver&vd_source=cc561849591f6a210152150b2493f6f3引用作用:给变量起别名语法:数据类型&变量=原变量;intmain(){ inta=10; int&b=a; b=20; cout<<b<<endl;//20 co......
  • 【C++】两个类的相互引用_c++ 类相互引用
    有时候在设计数据结构的时候,可能会遇到两个类需要相互引用的情形。比如类A有类型为B的成员,而类B又有类型为A的成员。那么这种情形下,两个类的设计上需要注意什么呢?同一文件尝试方案将A和B的定义都放在一个文件中,例如:#include<iostream>classA{public:......
  • c++ 语法 引用
      引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。C++引用vs指针引用很容易与指针混淆,它们之间有三个主要的不同:不存在空引用。引用必须连接到一块合法的内存。一旦引用被初始化为......
  • LaTeX 交叉引用的三次编译
    源文件main.tex\documentclass{article}\begin{document}Hereisacitation\cite{example}.\bibliographystyle{plain}\bibliography{references}\end{document}references.bib@article{example,author={AuthorName},title={TitleofthePap......