Как известно, Java 8 внедрила функциональное программирование для разработчиков Java.Как определить, работает ли интерфейс в Java?
Такие интерфейсы, как Comparator
, Runnable
, Callable
и т. Д. Являются функциональными.
Как следует из определения: функциональные интерфейсы являются интерфейсами, которые имеют только один абстрактный метод.
Но, например, тот же интерфейс Comparator
имеют более чем один абстрактные методы:
int compare(T o1, T o2);
boolean equals(Object obj); // inherited from Object class
// and a lot of concrete methods more
Ну, есть ли строгое правило , как определить , если интерфейс является функциональным, так что он может использоваться как цель назначения для выражения лямбда или ссылки на метод?
'булевы равно (OBJ объекта)' не наследуется из класса Object. Если бы это было так, это не было бы абстрактным. Интерфейс не является подтипом объекта. –