Java系列文章目录
补充内容 Windows通过SSH连接Linux
文章目录
一、前言
- Calculator::plus
- 看到
::
好奇有什么用
二、学习内容:
- 方法引用
三、问题描述
- 不知道使用的场景只知道他是引用
四、解决方案:
4.1 方法引用
方法引用就像是
给一个方法起个别名
,这样我们可以更方便地用这个别名来调用它。
- 类似于给某个工具添加一个标签,方便以后使用。
参考代码:
java
class Calculator {
// 加法方法
public int plus(int a, int b) {
return a + b;
}
}
@FunctionalInterface
interface MyNum {
int calculate(int a, int b);
}
public class Main {
public static void main(String[] args) {
// 创建一个计算器实例
Calculator calculator = new Calculator();
// 使用方法引用来指向加法方法
MyNum add = calculator::plus; // 这里是方法引用
// 调用方法,计算 2 + 5
int result = add.calculate(2, 5);
// 输出结果
System.out.println(result); // 输出 7
}
}
- 方法对比
java
// 使用 lambda 表达式
MyNum add = (a, b) -> calculator.plus(a, b);
// 使用方法引用
MyNum add = calculator::plus;
🌟MyNum add = Calculator::plus;
将 Calculator 的 plus 方法引用赋值给 add。
🌟add.calculate(2, 5);
实际上执行了 calculator.plus(2, 5);,返回结果 7。
五、总结:
🌟语句复杂的时候用Lambda表达式
🌟语句简单或适合函数式编程用方法引用
参考代码:
java
// 使用 lambda 表达式
MyNum add = (a, b) -> calculator.plus(a, b);
// 使用方法引用
MyNum add = calculator::plus;
- 如使用 Stream API,方法引用可以让代码更简洁
java
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
// 使用 lambda 表达式
names.forEach(name -> System.out.println(name));
// 使用方法引用
names.forEach(System.out::println);
(后续有遇到问题再添加)
声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。