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()
  • 相关阅读:
    Redis基础用法
    SpringCloud
    Excel数据导入数据库
    MySQL数据库汇总
    Java8stream表达式
    LocalDateTime&LocalDate&LocalTime
    深入理解Java中的锁
    数据集合
    平台介绍
    dubbo源码阅读之自适应扩展
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12090982.html
Copyright © 2011-2022 走看看