zoukankan      html  css  js  c++  java
  • Lambda学习总结(三)--方法引用

    一、方法引用

    1.1 方法引用含义

    在学习了 Lambda 表达式之后,我们通常会使用 Lambda 表达式来创建匿名方法。但有的时候我们仅仅是需要调用一个已存在的方法。如下示例:

    @FunctionalInterface
    public interface Printable {
        void print(String msg);
    }
    
    public class DemoPrint {
    
        private static void printString(Printable data){
            data.print("hello word");
        }
    
        public static void main(String[] args) {
            printString(s -> System.out.println());
        }
    }
    

    JDK 8 中,我们可以通过一个新特性来简写这段 Lambda 表达式。如下示例:

    printString(System.out :: println);
    

    这种特性就叫做方法引用(Method Reference)。

    1.2 方法引用符

    双冒号 :: 为引用运算符,而它所在的表达式被称为方法引用。

    Lambda 格式 :

    s -> System.out.println(s);
    

    方法引用格式:

    System.out::println
    

    二、方法引用形式

    目前方法引用共有以下几种形式:

    类型 示例 代码示例 对应的Lambda表达式
    引用静态方法 ContainingClass::staticMethodName String::valueOf (s) -> String.valueOf(s)
    引用某个对象的实例方法 containingObject::instanceMethodName x::toString() () -> this.toString()
    引用某个类型的任意对象的实例方法 ContainingType::methodName String::toString (s) -> s.toString
    引用构造方法 ClassName::new String::new () -> new String()
  • 相关阅读:
    删除 node_modules文件夹cmd指令
    vue 限制输入字符长度
    vertical-align和text-align属性实现垂直水平居中
    二分查找法
    MySQL实现分页查询
    数据库连接
    AOP编程的常用实现方式
    链表中环的入口
    AQS同步组件及ReentrantLock和synchronized的区别
    快速排序的递归和非递归
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12090982.html
Copyright © 2011-2022 走看看