欢迎访问宙启技术站
智能推送

Java函数接口与实现方式介绍

发布时间:2023-07-04 18:58:20

Java函数接口是一个只有一个抽象方法的接口。函数接口主要用于定义Lambda表达式的类型。在Java 8之前,接口中的所有方法都是抽象方法,需要在实现类中提供方法的具体实现。但是Java 8引入了Lambda表达式,可以通过实现函数接口来创建匿名函数。

函数接口可以使用@FunctionalInterface注解来声明。这个注解是可选的,但是建议使用它来确保接口只有一个抽象方法。如果一个接口有多个抽象方法,则编译器会报错。

下面是一个函数接口的例子:

@FunctionalInterface

public interface MyFunction {

    public void doSomething();

}

在上面的例子中,MyFunction是一个函数接口,只有一个抽象方法doSomething()。可以看到,该接口没有提供方法的具体实现,只定义了方法的签名。

为了使用函数接口,可以在程序中创建一个实现该接口的类,并提供方法的具体实现。也可以使用Lambda表达式来创建一个匿名函数,这种方式更常用。

下面是使用函数接口的两种实现方式的示例:

1. 创建一个实现类

public class MyFunctionImpl implements MyFunction {

    @Override

    public void doSomething() {

        System.out.println("Doing something...");

    }

}

在上面的示例中,MyFunctionImpl是一个实现了MyFunction接口的类,并提供了doSomething()方法的具体实现。

2. 使用Lambda表达式

MyFunction myFunction = () -> {

    System.out.println("Doing something...");

};

在上面的示例中,使用Lambda表达式创建了一个匿名函数,并将其赋值给一个MyFunction类型的变量。该匿名函数实现了MyFunction接口的抽象方法doSomething()。

使用Lambda表达式的方式更加简洁,可以减少代码量,并且更易读。因此,在Java 8之后,函数接口与Lambda表达式的组合成为了一种常用的编程方式。