Java 方法引用

java,方法,引用 · 浏览次数 : 0

小编点评

**目录** * 使用条件使用方式匿名类lambda 表达式::引用已有方法 * 总结定义 * 将方法作为参数传递即为方法引用 **使用条件使用方式匿名类lambda 表达式::引用已有方法** 使用条件使用方式匿名类lambda 表达式可以将方法作为参数传递给其他方法并使用其返回值。方法的形参和返回值需要与所引用的方法保持一致。 **总结** 使用条件使用方式匿名类lambda 表达式可以将方法作为参数传递并使用其返回值,但方法的形参和返回值需要与所引用的方法保持一致。 **方法引用** 方法引用是指将方法作为参数传递给另一个方法并使用其返回值的方法。 **方法引用传递** 将方法作为参数传递可以通过两种方式实现: 1. **方法名引用**:将方法名称作为参数传递。 2. **方法引用**:使用方法引用符引用已有方法。 **@FunctionalInterface 修饰的接口** @FunctionalInterface 接口只能包含一个抽象方法,该方法的形参和返回值需要与所引用的方法保持一致。 **例子** ```java @FunctionalInterface interface MyInterface { int apply(int a, int b); } class MyClass implements MyInterface { @Override public int apply(int a, int b) { return a + b; } } // 使用方法引用 MyInterface myInterface = new MyClass(); int result = myInterface.apply(2, 3); // 使用条件使用方式匿名类lambda 表达式 result = new MyClass().apply(4, 5); ```

正文

定义

将方法作为参数传递即为方法引用。
以@FunctionalInterface 修饰的接口 其中只能有一个抽象方法。
这个抽象方法的形参和返回值便是对所引用方法的约束。

使用条件

引用方法的返回值类型和形参需要与函数式接口的抽象方法保持一致

使用方式
匿名类
new 接口名() {
    // 实现接口的方法
};
lambda 表达式
(param)->{}
::引用已有方法

通过方法引用符引用已有方法。

  1. 类名引用静态方法 CLassName::method
  2. 实例对象引用成员方法 object::method
  3. 类名引用成员方法。会以函数方法的第一个参数来调用该引用方法,所以需要保持引用方法的形参和函数方法第一个参数后面的形参保持一致。
总结

总的来说,方法引用就是将方法作为参数。

与Java 方法引用相似的内容:

Java 方法引用

目录定义使用条件使用方式匿名类lambda 表达式::引用已有方法总结 定义 将方法作为参数传递即为方法引用。 以@FunctionalInterface 修饰的接口 其中只能有一个抽象方法。 这个抽象方法的形参和返回值便是对所引用方法的约束。 使用条件 引用方法的返回值类型和形参需要与函数式接口的

[转帖]什么是方法内联

写在前面 本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和文献引用请见100个问题搞定Java虚拟机 解答 方法内联是指,在编译过程中,当遇到方法调用时,将目标方法的方法体纳入编译范围之中,并取代原方法调用

java中判断String类型为空和null的方法

1.判断一个String类型的变量是否为空(即长度为0)或者为null 在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查。这是因为null表示变量没有引用任何对象,而空字符串("")表示变量引用了一个没有内容的字符串对象。 下面是一

Java基础 韩顺平老师的 常用类 的部分笔记

459,八大Wrapper类 包装类的分类 1) 针对八种基本数据类型相应的引用类型—包装类 2) 有了类的特点, 就可以调用类中的方法。 460,装箱和拆箱 package com.hspedu.Wrapper; public class WrapperType { public static v

【Java】JDK动态代理实现原理

代理模式 代理模式一般包含三个角色: Subject:主题对象,一般是一个接口,定义一些业务相关的基本方法。 RealSubject:具体的主题对象实现类,它会实现Subject接口中的方法。 Proxy:代理对象,里面包含一个RealSubject的引用,外部会通过这个代理对象,来实现RealSu

C++的动态分派在HotSpot VM中的重要应用

众所周知,多态是面向对象编程语言的重要特性,它允许基类的指针或引用指向派生类的对象,而在具体访问时实现方法的动态绑定。C++ 和 Java 作为当前最为流行的两种面向对象编程语言,其内部对于多态的支持对于单继承的实现非常类似。 首先来体现一下C++的动态分派,如下: class Base1{ pub

你知道 Java 有哪些引用吗?

判断对象是否要回收有引用计数法和可达性算法两种方式,无论哪种都离不开引用,本文将介绍Java的四种引用。

Java 21新特性:Sequenced Collections(有序集合)

在JDK 21中,Sequenced Collections的引入带来了新的接口和方法来简化集合处理。此增强功能旨在解决访问Java中各种集合类型的第一个和最后一个元素需要非统一且麻烦处理场景。 下面一起通过本文来了解一下不同集合处理示例。 Sequenced Collections接口 Seque

浅拷贝、深拷贝与序列化【初级Java必需理解的概念】

浅拷贝 首先创建两个类,方便理解浅拷贝 @Data class Student implements Cloneable{ //年龄和名字是基本属性 private int age; private String name; //书包是引用属性 private Bag bag; public Stu

Java面试题:SimpleDateFormat是线程安全的吗?使用时应该注意什么?

在Java开发中,我们经常需要获取和处理时间,这需要使用到各种不同的方法。其中,使用SimpleDateFormat类来格式化时间是一种常见的方法。虽然这个类看上去功能比较简单,但是如果使用不当,也可能会引发一些问题。