zoukankan      html  css  js  c++  java
  • java8新特性-lambda(方法引用)

    方法引用是结合lambda表达式的一种语法特性

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    class Person {
        private String name;
    
        private String gender;
    
        private int age;
    
        public static int compareByAge(Person p1, Person p2) {
            return p1.age - p2.age;
        }
    }
    
    class PersonUtil {
        public int compareByName(Person p1, Person p2) {
            return p1.getName().hashCode() - p2.getName().hashCode();
        }
    }
    
    interface IPerson {
        //抽象方法,通过指定类型的构造方法初始化对象数据
        Person initPerson(String name, String gender, int age);
    }

    1.静态方法引用

    类型名称.方法名称() -> 类型名称::方法名称

    Collections.sort(personList, Person::compareByAge);
    System.out.println(personList);

    2.实例方法引用

    创建类型对应的一个对象 -> 对象应用::实例方法名称

    PersonUtil personUtil = new PersonUtil();
    Collections.sort(personList, personUtil::compareByName);
    System.out.println(personList);

    3.构造方法引用

    绑定函数式接口

    IPerson person = Person::new;
    person.initPerson("jerry", "女", 11);
    System.out.println(person.toString());
  • 相关阅读:
    HDU 3466(01背包变种
    HDU 2639(01背包第K大)
    POJ 2184(01背包)(负体积)
    UVA 562(01背包)
    UVA 624(01背包记录路径)
    SQL总结二
    oracle--知识点汇总1
    时间日期----java
    字符串、数值----转换
    字符串反转----示例
  • 原文地址:https://www.cnblogs.com/freeht/p/13041499.html
Copyright © 2011-2022 走看看