Аннотационный интерфейс FunctionalInterface
@Documented @Retention(RUNTIME) @Target(TYPE) public @interface FunctionalInterface
java.lang.Object, он также не учитывается при подсчёте абстрактных методов интерфейса, поскольку любая реализация интерфейса будет иметь реализацию из java.lang.Object или из другого источника. Обратите внимание, что экземпляры функциональных интерфейсов можно создавать с помощью лямбда-выражений, ссылок на методы или ссылок на конструкторы.
Если тип аннотирован этим типом аннотации, компиляторы должны выдавать сообщение об ошибке, если не выполняются следующие условия:
- Тип является типом интерфейса, а не типом аннотации, перечислением или классом.
- Аннотированный тип удовлетворяет требованиям функционального интерфейса.
Однако компилятор будет считать любой интерфейс, соответствующий определению функционального интерфейса, функциональным интерфейсом независимо от того, присутствует ли аннотация FunctionalInterface в объявлении интерфейса.
- См. Спецификацию языка Java:
- 4.3.2 Объект Class
9.8 Функциональные интерфейсы
9.4.3 Тело метода интерфейса
9.6.4.9 @FunctionalInterface
- С версии:
- 1.8
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/FunctionalInterface.html