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()
  • 相关阅读:
    Android 多线程 打地鼠游戏
    Android 线程那些事儿
    Android 服务入门
    Android+Handler+Thread 那些事儿
    Android 数据库的线程合作
    Android 数据库中的数据给到ListView
    git 修改管理
    import com.sun.image.codec.jpeg.JPEGCodec不通过 找不到包(转载)
    VC++中开发汇编语言(转)
    C struct结构体内存对齐问题
  • 原文地址:https://www.cnblogs.com/markLogZhu/p/12090982.html
Copyright © 2011-2022 走看看