在Java 8中,@FunctionalInterface注解用于标记一个接口是一个函数式接口,即只有一个抽象方法的接口。函数式接口可以通过lambda表达式或方法引用创建一个函数对象。

下面是使用@FunctionalInterface的示例:

@FunctionalInterface
interface MyFunctionalInterface {
    void myMethod(); // 抽象方法

    default void myDefaultMethod() {
        // 默认方法
    }

    static void myStaticMethod() {
        // 静态方法
    }
}

public class Main {
    public static void main(String[] args) {
        // 使用lambda表达式创建函数对象
        MyFunctionalInterface functionalInterface1 = () -> System.out.println("Hello");

        // 使用方法引用创建函数对象
        MyFunctionalInterface functionalInterface2 = Main::myMethod;

        functionalInterface1.myMethod(); // 输出: Hello
        functionalInterface2.myMethod(); // 输出: Hello
    }

    public static void myMethod() {
        System.out.println("Hello");
    }
}

注意:

  • @FunctionalInterface注解不是必需的,但它可以确保接口只有一个抽象方法,以便能够使用lambda表达式创建函数对象。
  • 函数式接口可以包含默认方法和静态方法,但只有一个抽象方法。
  • lambda表达式和方法引用可以用来创建函数对象,这些函数对象可以在需要函数式接口的地方使用,例如作为方法的参数或返回值
java8 abstract FunctionalInterface怎么使用

原文地址: http://www.cveoy.top/t/topic/iisn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录