logo

Јава функционални интерфејси

Интерфејс који садржи тачно једну апстрактну методу познат је као функционални интерфејс. Може имати било који број подразумеваних, статичких метода, али може садржати само један апстрактни метод. Такође може декларисати методе класе објеката.

Функционални интерфејс је такође познат као интерфејси једног апстрактног метода или САМ интерфејси. То је нова карактеристика у Јави, која помаже да се постигне функционални приступ програмирању.


Пример 1

 @FunctionalInterface interface sayable{ void say(String msg); } public class FunctionalInterfaceExample implements sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample fie = new FunctionalInterfaceExample(); fie.say('Hello there'); } } 
Тестирајте одмах

Излаз:

 Hello there 

Функционални интерфејс може имати методе класе објеката. Погледајте у следећем примеру.

Пример 2

 @FunctionalInterface interface sayable{ void say(String msg); // abstract method // It can contain any number of Object class methods. int hashCode(); String toString(); boolean equals(Object obj); } public class FunctionalInterfaceExample2 implements sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample2 fie = new FunctionalInterfaceExample2(); fie.say('Hello there'); } } 
Тестирајте одмах

Излаз:

 Hello there 

Неважећи функционални интерфејс

Функционални интерфејс може проширити други интерфејс само када нема никакав апстрактни метод.

 interface sayable{ void say(String msg); // abstract method } @FunctionalInterface interface Doable extends sayable{ // Invalid '@FunctionalInterface' annotation; Doable is not a functional interface void doIt(); } 

Излаз:

 compile-time error 

Пример 3

У следећем примеру, функционални интерфејс се проширује на нефункционални интерфејс.

 interface Doable{ default void doIt(){ System.out.println('Do it now'); } } @FunctionalInterface interface Sayable extends Doable{ void say(String msg); // abstract method } public class FunctionalInterfaceExample3 implements Sayable{ public void say(String msg){ System.out.println(msg); } public static void main(String[] args) { FunctionalInterfaceExample3 fie = new FunctionalInterfaceExample3(); fie.say('Hello there'); fie.doIt(); } } 
Тестирајте одмах

Излаз:

 Hello there Do it now 

Јава унапред дефинисани функционални интерфејси

Јава пружа унапред дефинисане функционалне интерфејсе за рад са функционалним програмирањем коришћењем ламбда и референци метода.

Такође можете дефинисати сопствени прилагођени функционални интерфејс. Следи листа функционалних интерфејса који се налазе у пакету јава.утил.фунцтион.


Интерфејс Опис
БиЦонсумер Представља операцију која прихвата два улазна аргумента и не враћа резултат.
Цонсумер Представља операцију која прихвата један аргумент и не враћа резултат.
Функција Представља функцију која прихвата један аргумент и враћа резултат.
Предикат Представља предикат (функцију са логичком вредношћу) једног аргумента.
БиФунцтион Представља функцију која прихвата два аргумента и враћа резултат.
БинарниОператор Представља операцију над два операнда истог типа података. Враћа резултат истог типа као и операнди.
БиПредицате Представља предикат (функцију са логичком вредношћу) два аргумента.
БоолеанСупплиер Представља добављач резултата са логичком вредношћу.
ДоублеБинариОператор Представља операцију над два операнда двоструког типа и враћа вредност двоструког типа.
ДоублеЦонсумер Представља операцију која прихвата један аргумент двоструког типа и не враћа резултат.
ДоублеФунцтион Представља функцију која прихвата аргумент двоструког типа и даје резултат.
ДоублеПредицате Представља предикат (функцију са логичком вредношћу) једног аргумента двоструког типа.
ДоублеСупплиер Представља добављача резултата двоструког типа.
ДоублеТоИнтФунцтион Представља функцију која прихвата аргумент двоструког типа и производи резултат типа инт.
ДоублеТоЛонгФунцтион Представља функцију која прихвата аргумент двоструког типа и производи резултат дугог типа.
ДоублеУнариОператор Представља операцију над једним операндом двоструког типа који производи резултат двоструког типа.
ИнтБинариОператор Представља операцију на два операнда типа инт и враћа резултат типа инт.
ИнтЦонсумер Представља операцију која прихвата један целобројни аргумент и не враћа никакав резултат.
ИнтФунцтион Представља функцију која прихвата целобројни аргумент и враћа резултат.
ИнтПредицате Представља предикат (функцију са логичком вредношћу) једног целобројног аргумента.
ИнтСупплиер Представља добављача целобројног типа.
ИнтТоДоублеФунцтион Представља функцију која прихвата целобројни аргумент и враћа двоструки.
ИнтТоЛонгФунцтион Представља функцију која прихвата целобројни аргумент и враћа лонг.
ИнтУнариОператор Представља операцију над једним целобројним операндом који производи целобројни резултат.
ЛонгБинариОператор Представља операцију над два операнда дугачког типа и враћа резултат дугог типа.
ЛонгЦонсумер Представља операцију која прихвата један аргумент дугог типа и не враћа никакав резултат.
ЛонгФунцтион Представља функцију која прихвата аргумент дугог типа и враћа резултат.
ЛонгПредицате Представља предикат (функцију са логичком вредношћу) једног аргумента дугог типа.
ЛонгСупплиер Представља добављача резултата дугог типа.
ЛонгТоДоублеФунцтион Представља функцију која прихвата аргумент дугог типа и враћа резултат двоструког типа.
ЛонгТоИнтФунцтион Представља функцију која прихвата аргумент дугог типа и враћа целобројни резултат.
ЛонгУнариОператор Представља операцију над једним операндом дугог типа који враћа резултат дугог типа.
ОбјДоублеЦонсумер Представља операцију која прихвата објекат и двоструки аргумент и не враћа резултат.
ОбјИнтЦонсумер Представља операцију која прихвата објекат и целобројни аргумент. Не враћа резултат.
ОбјЛонгЦонсумер Представља операцију која прихвата објекат и дуг аргумент, не враћа резултат.
Добављач Представља добављача резултата.
ТоДоублеБиФунцтион Представља функцију која прихвата два аргумента и даје резултат двоструког типа.
ТоДоублеФунцтион Представља функцију која враћа резултат двоструког типа.
ТоИнтБиФунцтион Представља функцију која прихвата два аргумента и враћа цео број.
ТоИнтФунцтион Представља функцију која враћа цео број.
ТоЛонгБиФунцтион Представља функцију која прихвата два аргумента и враћа резултат типа лонг.
ТоЛонгФунцтион Представља функцију која враћа резултат типа лонг.
УнариОператор Представља операцију над једним операндом који враћа резултат истог типа као и његов операнд.