• lambda表达式之方法引用


    /**
     * 方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。<br>
     * 与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。
    *@date:2018年7月9日
    *@author:zhangfs
    */
    public class Car {
    
        public static Car create(final Supplier<Car> supplier) {
            return supplier.get();
    
        }
    
        public static void collide(final Car car) {
            System.out.println("Collided " + car.toString());
        }
    
        public void follow(final Car another) {
            System.out.println("Following the " + another.toString());
        }
    
        public void repair() {
            System.out.println("Repaired " + this.toString());
        }
        /**
         * 构造器引用<br>
         * 语法是Class::new,或者更一般的Class< T >::new。请注意构造器没有参数
         */
        @Test
        public void constructorRef() {
             Car car=Car.create(Car::new);
             car.repair();
        }
        
        /**
         * 类的静态方法引用<br>
         * 语法是Class::static_method。请注意这个方法接受一个Car类型的参数。
         */
        @Test
        public void staticMethodRef() {
            final Car car = Car.create( Car::new );
            final List< Car > cars = Arrays.asList( car );
    //        Car::collide();
            cars.forEach( Car::collide );
        }
        /**类的方法引用<br>
         * 语法是Class::method。请注意,这个方法没有参数
         */
        @Test
        public void commonMethodRef() {
            final Car car = Car.create( Car::new );
            final List< Car > cars = Arrays.asList( car );
    //        Car::collide();
            cars.forEach( Car::repair );
        }
        
        /**
         * 对象的方法引用<br>
         * 语法是instance::method。请注意,这个方法接受一个Car类型的参数
         */
        @Test
        public void objMethodRef() {
            final Car police = Car.create( Car::new );
            final List< Car > cars = Arrays.asList( police );
    
            cars.forEach( police::follow );
        }
    }
  • 相关阅读:
    python spark 求解最大 最小 平均
    python spark 求解最大 最小 平均 中位数
    我的spark python 决策树实例
    python spark 随机森林入门demo
    python spark 决策树 入门demo
    php 使用curl发起https请求
    awk调用shell命令的两种方法:system与print
    js 中 setTimeout()的用法
    Linux里AWK中split函数的用法
    awk substr()函数
  • 原文地址:https://www.cnblogs.com/zhangfengshi/p/9284638.html
Copyright © 2020-2023  润新知