• java_方法引用


    什么是方法引用?

    个人简述方法引用:

                方法引用主要是针对已经有的方法来让目前的编程更加简洁

                当我们想要使用一个接口的子类的时候,子类需要重写这个接口中的抽象方法,

                被重写的这个方法参数列表固定,返回值类型固定,只要将相应的代码被重写的方法即可

                因此引入lambda表达式,让我们更加方便简洁的只需要写入方法中的代码即可,其他操作交给jvm来处理,但是lambda表达式需要我们写明参数(和接口中对应方法对应的参数,参数类型可以省略),来方便我们在方法体中对传入参数的使用

                方法引用是lambda表达式的升级版本,针对的是当恰好有一个方法(a代表)的功能,参数,返回值和我们想要重写的方法一样,则可以直接引用a来实现,使得代码更加简洁

                使用方法引用只是重构方法,并不是调用方法,

    1. 什么是方法引用?

    当我们要编写一个lambda表达式时,发现已经有了一个(或者自己定义了一个)方法实现了我们在lambda中要实现的功能,

             这时就可以引用这个已写好的方法,来代替我们的lambda表达式

    1. 方法引用的前提

    1).基于lambda,必须可以使用lambda的时候才能判断是否可以使用方法引用

    2).引用方法做的事情必须是和我们使用lambda做的事情一样

    3).引用的方法的形参、返回值必须和接口中的形参和返回值一样(方法引用式不需要写形参和返回值,jvm自动判定)

                被引用方法形参必须等于    、大于接口中方法的形参类型;

                被引用方法的返回值类型等于、小于接口中方法的返回值类型

    1. 代码简写过程:

    有名字子类à匿名内部类àlambdaàlambda省略格式à方法引用

    二.方法引用格式及示例

             引用成员方法:

                                对象名::成员方法名

                               

             引用静态方法:

                                类名::静态方法名

             构造引用(有参和无参一样,参数jvm判定)

                                类名::new

             数组构造器引用(数组定义必须指定个数,所以在使用方法引用时,个数会通过方法的形参传入)

                                数据类型[]::new

     

    图形简介:

     示例代码:

    package com.ahd.fangfayinyong;
    
    public class Demo01 {
        public static void main(String[] args) {
            //通过实现三种方法创建线程-----匿名内部类,lambda表达式,方法引用对比来说明
            //匿名内部类
            new Thread(new Runnable() {
                @Override
                public void run() {
                    System.out.println("创建一个线程");
                }
            }).start();
    
            //通过使用lambda表达式(lambda完整格式)
            new Thread((()->{
                System.out.println("创建一个线程");
            })).start();
    
            //通过使用lambda表达式(lambda省略格式)
            new Thread((()-> System.out.println("创建一个线程"))).start();
    
            //通过使用方法引用来实现上述功能
            new Thread(System.out::println).start();
    
        }
    }

    有话想要对你说

  • 相关阅读:
    C/C++ string.h头文件小结
    linux根据进程pid查看进程详细信息
    《mysql必知必会》读书笔记
    安装vim with python
    vim正则表达式小结
    C语言指针篇(二)多级指针
    C语言指针篇(一)指针与指针变量
    递归函数
    lan口和wan口的配置
    C语言基础篇(三) 指针
  • 原文地址:https://www.cnblogs.com/aihuadung/p/10783744.html
Copyright © 2020-2023  润新知