zoukankan      html  css  js  c++  java
  • @FunctionalInterface注解的使用

    被@FunctionalInterface注解标记的类型表明这是一个函数接口。从概念上讲,函数接口只有一个抽象方法。如果接口声明的抽象方法覆写Object类的公共方法,那这方法不算作接口的抽象方法,因为接口具有Object方法的默认实现。

    先看Java SE 8中@FunctionalInterface注解是如何声明的:

    package java.lang;
    
    import java.lang.annotation.*;
    
    @Documented
    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.TYPE)
    public @interface FunctionalInterface {}

    由Java源代码声明我们了解到:@FunctionalInterface注解,只能用于类。其实,它的应用范围更小,只能应用于接口类型。

    我们可以使用lambda表达式,方法引用或构造函数引用创建功能接口的实例。

    如果一个类型被此标记的话,如果不是以下情况,编译器会报错:

    1. 此类型是接口类型并且不是注解类型、枚举或类
    2. 标记的类型满足函数接口的要求

    但是,无论接口声明中是否标记了@FunctionalInterface注解,编译器都会将满足函数接口定义的任何接口视为函数接口。

    像我的“函数接口(Functional Interfaces)”这篇博文中声明的函数接口,都可以使用此注解进行显式标记,告诉用户此接口是函数接口。

    下节继续

        下节将给大家讲解最后一个Java SE预定义注解@Deprecated的使用

  • 相关阅读:
    noip2015运输计划
    bzoj3595 方伯伯的oj
    noip模拟赛 #3
    圆方树
    AtCoder AGC #4 Virtual Participation
    noip模拟赛 #2
    AtCoder AGC #3 Virtual Participation
    UNR #1 火车管理
    noip模拟赛
    AtCoder AGC #2 Virtual Participation
  • 原文地址:https://www.cnblogs.com/springmorning/p/10296338.html
Copyright © 2011-2022 走看看