java Lambda表达式优缺点,函数式接口详细介绍

KLQ 2020-09-07 15:55:50 java常见问答 7313

之前给大家带来了java Lambda表达式详细介绍主要是概念方面的知识,那么下面要接着给大家介绍的就是它的优点和缺点以及Lambda表达式实现的接口函数式接口。

1、优点:

 Lambda表达式优点

2、缺点:

 Lambda表达式缺点

3、函数式接口

Lambda表达式实现的接口不是普通的接口,是函数式接口。

一个接口中,有且只有一个抽象的方法(Object 类中的方法不包括在内),那这个接口就可以被看做是函数式接口。

这种接口只能有一个方法,假如,接口中声明多个抽象方法,那么Lambda表达式会发生编译错误:

The target type of this expression must be a functional interface

这就表明,这个接口不是函数式接口,为了可以防止在函数式接口当中声明多个抽象方法,

Java 8提供了一个声明函数式接口注解@FunctionalInterface,示例代码:

// 可计算接口
@FunctionalInterface
public interface Calculable
{
    // 计算两个int数值
    int calculateInt(int a, int b);
}

在接口之前使用@FunctionalInterface注解修饰,那么试图增加一个抽象方法时会发生编译错误,但可以添加默认方法和静态方法。

@FunctionalInterface注解@Override注解的作用类似。

Java 8当中,专门为函数式接口引入了一个新的注解@FunctionalInterface,这个注解可用于一个接口的定义上,一旦使用这个注解来定义接口,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。

要注意了,即使不使用这个注解,只要满足函数式接口的定义,这仍然是一个函数式接口,使用起来都一样。

注意,Lambda表达式是一个匿名方法代码,Java中的方法必须声明在类或接口中,那么 Lambda表达式所实现的匿名方法是在函数式接口中声明的。

你还想了解更多的相关java基础内容吗,可以继续的通过奇Q工具网来进行了解哦。

推荐阅读:

java使用Lambda表达式遍历Iterator迭代器详解

java使用Lambda表达式遍历Collection集合详解