Java

java方法引用如何定义的

小樊
82
2024-11-19 22:42:00
栏目: 编程语言

在Java中,方法引用是一种简化Lambda表达式的写法。它允许你引用已经存在的方法或构造函数。方法引用定义的语法如下:

::静态方法名
::实例方法名
::类方法名
::构造方法名

以下是各种类型的方法引用的示例:

  1. 静态方法引用:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort(String::compareToIgnoreCase);

这里,我们使用了String::compareToIgnoreCase静态方法引用来对字符串列表进行排序。

  1. 实例方法引用:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.sort((name1, name2) -> name1.length() - name2.length());

// 使用实例方法引用简化代码
names.sort(String::length);

在这个例子中,我们使用了String::length实例方法引用来按字符串长度对列表进行排序。

  1. 类方法引用:
class MyClass {
    public static int add(int a, int b) {
        return a + b;
    }
}

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.sort((a, b) -> MyClass.add(a, b));

// 使用类方法引用简化代码
numbers.sort(MyClass::add);

这里,我们使用了MyClass::add类方法引用来对整数列表进行排序,通过调用MyClass类的静态方法add来计算两个整数的和。

  1. 构造方法引用:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> uppercasedNames = names.stream()
                                    .map(String::toUpperCase)
                                    .collect(Collectors.toList());

在这个例子中,我们使用了String::toUpperCase构造方法引用来将字符串列表中的每个元素转换为大写形式。

0
看了该问题的人还看了