当前位置: 首页 > article >正文

Java_方法引用

在这里插入图片描述
使用方法引用符::
在这里插入图片描述
在这里插入图片描述

引用静态方法

在这里插入图片描述
在这里插入图片描述
使用匿名内部类的写法:
在这里插入图片描述

引用其他类中的成员方法

先创建一个其他类的成员方法
在这里插入图片描述
先创建对象,然后使用::进行方法引用
在这里插入图片描述

引用本类中的成员方法

注意,如果是本类中的静态方法中使用本类引用,那么要先创建对象然后进行引用。
this::function

引用父类中的成员方法

super::function

引用构造方法

在这里插入图片描述
在这里插入图片描述
构造方法改写:
在这里插入图片描述
调用构造方法引用:
在这里插入图片描述

其他调用方式

在这里插入图片描述

使用类名引用成员方法

注意这种使用方法是特别特殊的一种格式。

public class FunctionDemo5 {
    public static void main(String[] args) {
        /*
        方法引用(类名引用成员方法)
        格式
                类名::成员方法
        需求:
             集合里面一些字符串,要求变成大写后进行输出
        方法引用的规则:
        1.需要有函数式接口
        2.被引用的方法必须已经存在
        3.被引用方法的形参,需要跟抽象方法的第二个形参到最后一个形参保持一致,返回值需要保持一致。
        4.被引用方法的功能需要满足当前的需求
        抽象方法形参的详解:
        第一个参数:表示被引用方法的调用者,决定了可以引用哪些类中的方法
                    在Stream流当中,第一个参数一般都表示流里面的每一个数据。
                    假设流里面的数据是字符串,那么使用这种方式进行方法引用,只能引用String这个类中的方法
        第二个参数到最后一个参数:跟被引用方法的形参保持一致,如果没有第二个参数,说明被引用的方法需要是无参的成员方法
        局限性:
            不能引用所有类中的成员方法。
            是跟抽象方法的第一个参数有关,这个参数是什么类型的,那么就只能引用这个类中的方法。
       */
 
        //1.创建集合对象
        ArrayList<String> list = new ArrayList<>();
        //2.添加数据
        Collections.addAll(list, "aaa", "bbb", "ccc", "ddd");
        //3.变成大写后进行输出
        //map(String::toUpperCase)
        //拿着流里面的每一个数据,去调用String类中的toUpperCase方法,方法的返回值就是转换之后的结果。
        list.stream().map(String::toUpperCase).forEach(s -> System.out.println(s));
 
 
        //String --> String
       /* list.stream().map(new Function<String, String>() {
            @Override
            public String apply(String s) {
                return s.toUpperCase();
            }
        }).forEach(s -> System.out.println(s));*/
    }
}

本质上:拿着流里面的每一个数据,去调用String类中的toUpperCase方法,方法的返回值就是转换之后的结果。

引用数组的构造方法

在这里插入图片描述
没看到有什么实际价值,就是创建数组?


http://www.kler.cn/a/537717.html

相关文章:

  • libtorch的c++,加载*.pth
  • 无限使用Cursor
  • Docker 部署 GitLab
  • Baumer工业相机堡盟相机的相机传感器芯片清洁指南
  • 【GitLab CI/CD 实践】从 0 到 1 搭建高效自动化部署流程
  • 网安三剑客:DNS、CDN、VPN
  • leetcode——杨辉三角(简单移动的解法)
  • 后台管理系统网页开发
  • deepseek搭建本地知识库
  • 基于大模型的围术期脆弱性评估系统研究报告
  • 软考通过率仅有10% ?或许2025年更难?
  • 训练你的模型:如何构造和优化训练数据(三·上)
  • PAT乙级( 1009 说反话 1010 一元多项式求导)C语言版本超详细解析
  • WordPress email-subscribers插件存在SQL注入漏洞(CVE-2024-2876)
  • Java中实现‌‌SHA-3算法介绍、应用场景和示例代码
  • 21.2.6 字体和边框
  • DeepSeek V3报告阅读
  • deepseek从网络拓扑图生成说明文字实例
  • 玩转Docker | 使用Docker部署httpd服务
  • ESP32S3基于espidf 深度睡眠模式和唤醒使用
  • XML Schema 限定 / Facets
  • leetcode1313--解压缩编码列表
  • Kong故障转移参数配置
  • [图文]课程讲解片段-Fowler分析模式的剖析和实现01
  • 2025.2.8——一、[护网杯 2018]easy_tornado tornado模板注入
  • CNN-day10-经典神经网络MobileNet V1&V2&V3