Java8之函数接口

函数接口Java8新特性提供了函数式接口,用于更好的支持函数式编程。定义所谓函数式接口就是只有一个抽象方法的接口。Java8中可以通过注解(@FunctionalInterface)来限定它(即便不加注解,只有一个抽象方法默认也是函数式接口)。比如:public interface MyInterface { void myFunction();}加上注解@FunctionalInter...
摘要由CSDN通过智能技术生成

函数接口

Java8新特性提供了函数式接口,用于更好的支持函数式编程。

定义

所谓函数式接口就是只有一个抽象方法的接口。Java8中可以通过注解(@FunctionalInterface)来限定它(即便不加注解,只有一个抽象方法默认也是函数式接口)。

比如:

public interface MyInterface {
    void myFunction();
}

加上注解@FunctionalInterface后,当超出一个抽象方法时,直接编译报错。

@FunctionalInterface
public interface MyInterface {
    void myFunction();
}

默认方法

Java8运行接口有默认方法,用default 关键字修饰即可,当然可以有多个默认方法。注意,默认方法只能是public,且默认是public。

@FunctionalInterface
public interface MyInterface {
    void myFunction();
    
    default void defaultFunction1() {
        System.out.println("Interface : default function1");
    }

    default void defaultFunction2() {
        System.out.println("Interface : default function2");
    }
}


静态方法

Java8支持接口有静态方法,另外调用时,使用接口名调用静态方法。注意,默认方法只能是public,且默认是public。
@FunctionalInterface
public interface MyInterface {
    void myFunction();
    static void staticFunction() {
        System.out.println("Interface : staticFunction");
    }
}
与类的静态方法调用方式一样:
MyInterface.staticFunction();

使用

虽然函数式接口提供了这些功能,不过使用时需要更加小心。比如多个接口的继

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值