Java8 接口新实现方式

定义接口默认实现

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 );
  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,831评论 25 709
  • 今天看到一位战友写的一篇文章,开头引用的一句话,把我惊呆了。这句话是: 其实谦逊会让人猥琐。越谦逊,越猥琐。谦逊到...
    超级赋能王张胜萍阅读 1,196评论 4 8
  • 当第一缕阳光从窗口洒进来,叶初瑶醒了,更准确来说是是被厨房锅碗瓢盆的声音吵醒的。 出来发现蔡晨睿正在准备香气扑鼻的...
    拈花一叶阅读 781评论 2 3