zoukankan      html  css  js  c++  java
  • Java8(三) 方法引用

    方法引用

    方法引用是一个更加紧凑,易读的 Lambda 表达式。

    当Lambda表达式中只是执行一个已存在方法调用时使用,且方法引用所使用方法的入参和返回值与lambda表达式实现的函数式接口的入参和返回值一致。

    1 几种类型

    1.1 方法引用
    对象引用 :: 实例方法名
    public class Test{
        public static void main(String[] args){
            Test test = new Test();
            // lambda表达式使用:
            Arrays.asList(new String[] {"a", "c", "b"}).stream().forEach(s -> test.println(s));
            // 特定对象的实例方法引用:
            Arrays.asList(new String[] {"a", "c", "b"}).stream().forEach(test :: println);
        }
        
        public void println(String s){
            System.out.println(s);
        }
    }
    
    类名 :: 静态方法名
    public class Test{
        public static void main(String[] args){
            //lambda表达式使用:
            Arrays.asList(new String[] {"a", "c", "b"}).stream().forEach(s -> Test.println(s));
            //静态方法引用:
            Arrays.asList(new String[] {"a", "c", "b"}).stream().forEach(Test :: println);
        }
        
        public static void println(String s){
            System.out.println(s);
        }
    }
    
    类名 :: 实例方法名
    public class Test{
        public static void main(String[] args){
            String[] strArray = {"a", "c", "b"};
            //lambda表达式使用:
            Arrays.sort(strArray, (s1,s2) -> s1.compareToIgnoreCase(s2));
            //类名 :: 实例方法名引用:
            Arrays.sort(strArray, String::compareToIgnoreCase);
        }
    }
    
    1.2 构造器引用
    类名 :: new
    // Lambda表达式
    name -> new Person(name)
        
    // 方法引用
    Person::new
    
    1.3 数组引用
    类型[] :: new
    // Lambda表达式
    length -> new int[length]
    
    // 方法引用
    int[]::new
    
  • 相关阅读:
    (转)C# DES
    (转)adb shell am 的用法
    (转)C# 解析 json
    (转)C#执行exe程序
    (转) C# textbox 限制输入问题
    (转)C# SSL-X509使用
    事务管理
    spring数据源
    2.spring 学习
    sonarqube 代码检查
  • 原文地址:https://www.cnblogs.com/lyldelove/p/13296520.html
Copyright © 2011-2022 走看看