美文网首页Java程序性能优化
Java8 接口新实现方式

Java8 接口新实现方式

作者: Chinesszz | 来源:发表于2017-07-15 22:57 被阅读33次

定义接口默认实现

public interface Defaulable {
    default String notRequired() {
        return "Default implementation";
    }
}

实现类1

public class DefaulableImpl implements Defaulable {
    @Override
    public String notRequired() {
        return "Overridden implementation";
    }
}

实现类2

public class DefaulableImpl2 implements Defaulable {
    @Override
    public String notRequired() {
        return "Overridden implementation2";
    }
}

工厂方法

public interface DefaulableFactory {
    static Defaulable create(Supplier< Defaulable > supplier){
        return supplier.get();
    }
}
public class DefaulableTest {
    public static void main(String[] args) {
        Defaulable defaulable=DefaulableFactory.create(DefaulableImpl::new);
        System.out.println(defaulable.notRequired());

        Defaulable defaulable1=DefaulableFactory.create(DefaulableImpl2::new);
        System.out.println(defaulable1.notRequired());
    }
}

静态方法调用

public  class Car {
    public static Car create( Supplier<Car>supplier){
        return supplier.get();
    }
    //方法引用是静态方法引用,它的语法是Class::static_method。请注意这个方法接受一个Car类型的参数。
    public static void getName(Car c){
        System.out.println("宝马");
    }
}


    List<Car> cars = Arrays.asList(car, car1);
    //引用是静态方法引用,它的语法是Class::static_method。请注意这个方法接受一个Car类型的参数。
    cars.forEach(Car::getName);
    //引用是特定类的任意对象的方法引用,它的语法是Class::method。请注意,这个方法没有参数。
    cars.forEach(Car::repair);
    //引用是特定对象的方法引用,它的语法是instance::method。请注意,这个方法接受一个Car类型的参数
    Car police = Car.create( Car::new );
    cars.forEach( police::follow );
  

相关文章

  • java8 新特性总结

    java8新特性 1.接口方法默认实现:java8中接口方法可以有默认实现,需要加入default关键字。 2.L...

  • Java8 接口新实现方式

    定义接口默认实现 实现类1 实现类2 工厂方法 静态方法调用

  • Java8的接口增强

    JAVA8 接口的增强:在Java8之前的接口只能定义抽象方法,即不能有具体的实现,但是在Java8之后,接口中可...

  • Java8 编程规范入门之【接口允许方法实现】

    JAVA8中接口interface引入方法实现的猜想 在JAVA8之前java中的接口类型旨在定义类型的接口规约,...

  • 提示二十一

    今天来看提示二十一:为后代设计接口。 在java8之前,如果想要为一个接口添加新的方法,那么所有的实现类都要去实现...

  • Java Lambda表达式

    1 简介 Lambda表达式是java8提供的新特性,是一种匿名函数,也是函数式接口实现的快捷方式,类似js中的闭...

  • java 各版本新特性介绍

    java8 新特性 Java8 主要包括的新特性有: 函数式接口如果一个接口只有一个抽象方法,那么该接口就成为一个...

  • 默认方法

    1.简述 在Java8之前,Java程序接口是将相关方法按照约定组合到一起的方式。实现接口的类必须为接口中定义的每...

  • Java8-接口中的默认方法与静态方法

    在Java8以前,我们知道接口中是不能够有方法的具体实现的,但是Java8中则允许有接口的默认实现。 我们先来个例...

  • JAVA8 Collector接口掠过

    JAVA8 Collector接口 Collector接口如下 一、例子一: 自己写 toList() 的实现 二...

网友评论

    本文标题:Java8 接口新实现方式

    本文链接:https://www.haomeiwen.com/subject/pegzhxtx.html