java中方法引用

目录

方法引用:

引用静态方法

引用成员方法

引用构造方法

 使用类名引用成员方法

引用数组的构造方法

练习



方法引用:

把已经有的方法拿过来用,当做函数式接口中抽象方法的方法体

在Java中,方法引用是一种简化Lambda表达式的方式,可以直接引用已经存在的方法来代替

Lambda表达式。通过方法引用,可以将方法作为一个参数传递给另一个方法,或者将方法赋值给

 一个变量。

使用方法引用可以简化代码,提高代码的可读性和简洁性。它可以让我们避免编写冗余的Lambda

表达式,直接引用已经存在的方法

::是什么符号?

方法引用符

方法引用时要注意什么?

  • 需要有函数式接口
  • 被引用方法必须已经存在
  • 被引用方法的形参和返回值需要跟抽象方法保持一致
  • 被引用方法的功能要满足当前的需求

引用静态方法

格式: 类名::静态方法

范例:Integer::parseInt 

  1. 方法需要已经存在
  2. 方法的形参和返回值需要跟抽象方法的形参和返回值保持一致
  3. 方法的功能:需要把形参的字符串转换成整数

将数据变为int类型👇

首先我们来看一般的思路

 

使用方法引用👇

引用成员方法

格式: 对象::成员方法

  1. 其他类:其他类对象::方法名
  2. 本类:this::方法名(引用处不能是静态方法)
  3. 父类:super::方法名(引用处不能是静态方法)

练习:

集合中有一些名字,按照要求过滤数据

正常思路如👇

用方法引用

先写个StringJudge类

引用构造方法

格式:类名::new

范例:Student::new

练习:

集合里面存储姓名和年龄,比如:张无忌,15要求:将数据封装成Student对象并收集到List集合中

Student类

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

  
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
}

 

用方法引用👇

需要在Student类中加入

 使用类名引用成员方法

格式: 类名::成员方法

范例:string::substring

练习:

集合里面一些字符串,要求变成大写后进行输出

 

用方法引用👇

引用数组的构造方法

格式: 数据类型[]::new

范例:int[]::new

练习:

集合中存储一些整数,收集到数组当中

用引用方法👇


练习

练习1:

集合中存储一些字符串的数据,比如:张三,23收集到Student类型的数组当中(使用方法引用完成)

  

练习2:

创建集合添加学生对象,学生对象属性:name,age只获取姓名并放到数组当中(使用方法引用完成)

Student类

package com.youjunjie;

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String str){
        this.name = str.split(",")[0];
        this.age = Integer.parseInt(str.split(",")[1]);
    }
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
}

 


方法引用的这一期就到这里啦!!!感谢观看!!!

继续努力努力再努力!!!

 

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力敲代码的小火龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值