【Java】通俗易懂方法引用

Java系列文章目录

补充内容 Windows通过SSH连接Linux
第一章 Linux基本命令的学习与Linux历史


文章目录

  • Java系列文章目录
  • 一、前言
  • 二、学习内容:
  • 三、问题描述
  • 四、解决方案:
    • 4.1 解释
    • 4.2 使用场景
    • 4.3 为何使用Lambda表达式
  • 五、总结:
    • 5.1 方法引用主要有四种类型:
    • 5.2 方法引用的好处

一、前言

  • 方法引用学习
  • 与见方法引用理解一下
wrapper.set(request.getName() != null, Clue::getName, request.getName());

二、学习内容:

  • 方法引用

⭐️ 简化Lambda表达式
Lambda的讲解地址


三、问题描述

  • 方法引用由来

四、解决方案:

4.1 解释

一种简化写法

 Thread thread = new Thread(() -> runTask());
 // 可以简化为
 Thread thread = new Thread(this::runTask);

4.2 使用场景

一些多线程或者链式调用常用

List<String> strings = Arrays.asList("1", "2", "3");
List<Integer> integers = strings.stream()
                                .map(Integer::parseInt)
                                .collect(Collectors.toList());

4.3 为何使用Lambda表达式

方法对比

  • Lambda
 new Thread(() -> runTask()).start();
  • 静态内部类
 new Thread(new Runnable() {
     @Override
     public void run() {
         runTask();
     }
 }).start();

五、总结:

一种更简化的写法

5.1 方法引用主要有四种类型:

静态方法引用(Static Method Reference):

  • 引用类中的静态方法。
// 示例  
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");  
names.sort(String::compareToIgnoreCase);  

实例方法引用(Instance Method Reference):

  • 引用某个实例的非静态方法。
// 示例  
String prefix = "Mr. ";  
Function<String, String> greetingFunction = prefix::concat;  
System.out.println(greetingFunction.apply("Smith"));  // 输出 "Mr. Smith"  

特定对象的实例方法引用(Particular Object Instance Method Reference):

  • 引用某对象的实例方法。
// 示例  
String str = "Hello";  
Supplier<Integer> lengthSupplier = str::length;  
System.out.println(lengthSupplier.get());  // 输出 5  

构造器引用(Constructor Reference):

  • 引用类的构造方法。
// 示例  
Supplier<List<String>> listSupplier = ArrayList::new;  
List<String> list = listSupplier.get();  // 创建一个新的 ArrayList  
  • 在使用方法引用时,必须保证所引用的方法符合函数式接口的要求,即方法的参数和返回类型要与接口的方法一致。

5.2 方法引用的好处

提高代码的可读性和可维护性。
减少冗余代码。
更加直观地表明意图。

(后续有遇到问题再添加)


声明:如本内容中存在错误或不准确之处,欢迎指正。转载时请注明原作者信息(麻辣香蝈蝈)。

在这里插入图片描述

你可能感兴趣的:(Java,java,python,开发语言,spring,boot,学习方法,mybatis)