admin 管理员组

文章数量: 887021


2024年2月18日发(作者:has怎么读)

方法引用的用法有哪些例子

方法引用是Java 8中引入的一种函数式编程的特性,可以简化代码并提高可读性。它允许我们直接引用现有的方法或构造函数作为Lambda表达式的替代。

以下是一些方法引用的例子:

1. 静态方法引用:

静态方法引用用于引用静态方法。使用格式为:ClassName::staticMethodName。

例如:Math类中的静态方法abs(int a),可以使用Math::abs进行引用。

Lambda表达式:x -> (x)

方法引用:Math::abs

2. 实例方法引用:

实例方法引用用于引用任意对象的实例方法。使用格式为:instance::instanceMethodName。

例如:String类中的实例方法length(),可以使用String::length进行引用。

Lambda表达式:s -> ()

方法引用:String::length

3. 特定类的任意对象的实例方法引用:

特定类的任意对象的实例方法引用用于引用特定类型的任意对象的实例方法。使

用格式为:ClassName::instanceMethodName。

例如:Integer类中的实例方法compareTo(Integer anotherInteger),可以使用Integer::compareTo进行引用。

Lambda表达式:(a, b) -> apareTo(b)

方法引用:Integer::compareTo

4. 构造方法引用:

构造方法引用用于引用构造方法。使用格式为:ClassName::new。

例如:Person类的构造方法Person(String name, int age),可以使用Person::new进行引用。

Lambda表达式:(name, age) -> new Person(name, age)

方法引用:Person::new

5. 数组的静态方法引用:

数组引用可以用来引用数组的静态方法。使用格式为:ArrayType::staticMethodName。

例如:Arrays类中的静态方法sort(int[] arr),可以使用Arrays::sort进行引用。

Lambda表达式:arr -> (arr)

方法引用:Arrays::sort

6. 数组的实例方法引用:

数组引用可以用来引用数组的实例方法。使用格式为:

arrayRef::instanceMethodName。

例如:int[]数组的实例方法length(),可以使用int[]::length进行引用。

Lambda表达式:arr ->

方法引用:int[]::length

7. 引用特定类型的任意对象的实例方法:

引用特定类型的任意对象的实例方法,使用格式为:instance::methodName。

例如:如下代码中的lambda表达式向list中的每个元素调用了toString()方法:

List list = ("A", "B", "C");

h(e -> n(ng()));

现在,我们可以使用方法引用来简化它:

h(::println)

这只是一些常见的方法引用的示例,通过方法引用我们可以更加简洁地表达代码意图,提高代码的可读性和可维护性。同时,方法引用也是函数式编程的强大工具,可以使代码更具有灵活性和可复用性。


本文标签: 引用 方法 代码