zoukankan      html  css  js  c++  java
  • java8新特性_::双冒号

    java8新特性_::双冒号

    来源:

    方法引用通过方法的名字来指向一个方法。

    方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

    方法引用使用一对冒号 :: 。

    构造器引用

    1.定义Supplier
    @FunctionalInterface
    public interface Supplier<T> {
        T get();
    }
    2.通过Supplier引用
        //Supplier是jdk1.8的接口,这里和lamda一起使用了
        public static Car create(final Supplier<Car> supplier) {
            return supplier.get();
        }
    3.引用
    final Car car = Car.create( Car::new );
    final List< Car > cars = Arrays.asList( car );

    静态方法引用

    方法是static的,name参数必须是循环对应的对象的

    定义方法:
        /*方法必须是static的
        参数必须是循环的对象格式的
        参数不必须是是final,可以是final
        */
        public static void collide(Car car) {//
            System.out.println("Collided " + car.toString());
        }
    调用
    cars是一个list/数组等
        cars.forEach( Car::collide );

    特定类的任意对象的方法引用

    定义方法
        /*方法不是static时,不能有参数
        */
        public void repair() {
            System.out.println("Repaired " + this.toString());
        }
    调用:
        cars.forEach( Car::repair );

    特定对象的方法引用

    对list中的某一个对象引用

        /*
        必须有参数,参数是遍历的具体对象
         */
    public void follow(Car another) {
            System.out.println("Following the " + another.toString());
        }
    使用:
    //对应的这个类必须是final的,否则所有的对象都可会调用这个方法
    final Car police = Car.create( Car::new );
    cars.forEach( police::follow );

    lambda和双:

    public static void  printValur(String str){
        System.out.println("print value : "+str);
    }
    List<String> al = Arrays.asList("a","b","c","d");
    • 1.8以前的遍历:
    for (String a: al) {
        AcceptMethod.printValur(a);
    }
    • lambda
    al.forEach(x->{ AcceptMethod.printValur(x); });
    • 双:
    al.forEach(AcceptMethod::printValur);




  • 相关阅读:
    Ajax技术
    java web中filter分析
    Async分析
    解释session
    XML相关知识
    开学第一课
    svn
    spa单页面应用(angular)
    angular
    webpack认识
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/a27313e734cb645171572b28efcbb900.html
Copyright © 2011-2022 走看看