logo

Java funkcinės sąsajos

Sąsaja, kurioje yra tiksliai vienas abstraktus metodas, yra žinoma kaip funkcinė sąsaja. Jame gali būti bet koks numatytųjų statinių metodų skaičius, bet gali būti tik vienas abstraktus metodas. Jis taip pat gali deklaruoti objektų klasės metodus.

Funkcinė sąsaja taip pat žinoma kaip Single Abstract Method Interfaces arba SAM sąsajos. Tai nauja Java funkcija, padedanti pasiekti funkcinį programavimo metodą.


1 pavyzdys

 @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'); } } 
Išbandykite dabar

Išvestis:

 Hello there 

Funkcinė sąsaja gali turėti objektų klasės metodus. Žiūrėkite toliau pateiktame pavyzdyje.

2 pavyzdys

 @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'); } } 
Išbandykite dabar

Išvestis:

 Hello there 

Netinkama funkcinė sąsaja

Funkcinė sąsaja gali išplėsti kitą sąsają tik tada, kai ji neturi jokio abstraktaus metodo.

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

Išvestis:

 compile-time error 

3 pavyzdys

Toliau pateiktame pavyzdyje funkcinė sąsaja išplečiama iki nefunkcinės sąsajos.

 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(); } } 
Išbandykite dabar

Išvestis:

 Hello there Do it now 

Java iš anksto nustatytos funkcinės sąsajos

Java teikia iš anksto nustatytas funkcines sąsajas, skirtas funkciniam programavimui, naudojant lambda ir metodų nuorodas.

Taip pat galite nustatyti savo tinkintą funkcinę sąsają. Toliau pateikiamas funkcinių sąsajų, esančių java.util.function pakete, sąrašas.


Sąsaja apibūdinimas
BiConsumer Tai reiškia operaciją, kuri priima du įvesties argumentus ir nepateikia rezultato.
Vartotojas Tai reiškia operaciją, kuri priima vieną argumentą ir nepateikia rezultato.
Funkcija Tai reiškia funkciją, kuri priima vieną argumentą ir grąžina rezultatą.
Predikatas Tai reiškia vieno argumento predikatą (būlio reikšmės funkciją).
BiFunction Tai reiškia funkciją, kuri priima du argumentus ir pateikia rezultatą.
Dvejetainis operatorius Tai reiškia operaciją su dviem to paties duomenų tipo operandais. Jis pateikia to paties tipo rezultatą kaip ir operandai.
BiPredicate Tai reiškia dviejų argumentų predikatą (būlio reikšmės funkciją).
BooleanSupplier Tai yra Būlio vertės rezultatų tiekėjas.
DoubleBinaryOperator Tai reiškia operaciją su dviem dvigubo tipo operandais ir grąžina dvigubo tipo reikšmę.
DoubleConsumer Tai reiškia operaciją, kuri priima vieną dvigubo tipo argumentą ir nepateikia rezultato.
DoubleFunction Tai reiškia funkciją, kuri priima dvigubo tipo argumentą ir sukuria rezultatą.
DoublePredicate Tai reiškia vieno dvigubo tipo argumento predikatą (būlio reikšmės funkciją).
DoubleSupplier Tai yra dvigubo tipo rezultatų tiekėjas.
DoubleToIntFunction Tai reiškia funkciją, kuri priima dvigubo tipo argumentą ir sukuria int tipo rezultatą.
DoubleToLongFunction Tai reiškia funkciją, kuri priima dvigubo tipo argumentą ir sukuria ilgo tipo rezultatą.
DoubleUnaryOperator Tai reiškia vieno dvigubo tipo operando operaciją, kuri sukuria dvigubo tipo rezultatą.
IntBinaryOperator Tai reiškia operaciją su dviem int tipo operandais ir grąžina int tipo rezultatą.
IntConsumer Tai reiškia operaciją, kuri priima vieną sveikojo skaičiaus argumentą ir nepateikia rezultato.
IntFunction Tai reiškia funkciją, kuri priima sveikojo skaičiaus argumentą ir grąžina rezultatą.
IntPredicate Tai reiškia vieno sveikojo skaičiaus argumento predikatą (būlio reikšmės funkciją).
IntSupplier Tai yra sveikojo skaičiaus tiekėjas.
IntToDoubleFunction Tai reiškia funkciją, kuri priima sveikojo skaičiaus argumentą ir grąžina dvigubą.
IntToLongFunction Tai reiškia funkciją, kuri priima sveikojo skaičiaus argumentą ir grąžina ilgą.
IntUnaryOperator Tai reiškia vieno sveikojo skaičiaus operando operaciją, kuri sukuria sveikojo skaičiaus rezultatą.
LongBinaryOperatorius Tai reiškia operaciją su dviem ilgo tipo operandais ir grąžina ilgo tipo rezultatą.
LongConsumer Tai reiškia operaciją, kuri priima vieną ilgo tipo argumentą ir nepateikia jokio rezultato.
LongFunction Tai reiškia funkciją, kuri priima ilgo tipo argumentą ir grąžina rezultatą.
Ilgasis Predikatas Tai reiškia vieno ilgo tipo argumento predikatą (būlio reikšmės funkciją).
LongSupplier Tai yra ilgo tipo rezultatų tiekėjas.
LongToDoubleFunction Tai reiškia funkciją, kuri priima ilgo tipo argumentą ir grąžina dvigubo tipo rezultatą.
LongToIntFunction Tai reiškia funkciją, kuri priima ilgo tipo argumentą ir grąžina sveikąjį rezultatą.
LongUnaryOperator Tai reiškia vieno ilgojo tipo operando operaciją, kuri grąžina ilgo tipo rezultatą.
ObjDoubleConsumer Tai reiškia operaciją, kuri priima objektą ir dvigubą argumentą ir nepateikia rezultato.
„ObjIntConsumer“. Tai reiškia operaciją, kuri priima objektą ir sveikojo skaičiaus argumentą. Tai negrąžina rezultato.
ObjLongConsumer Tai reiškia operaciją, kuri priima objektą ir ilgą argumentą, nepateikia jokio rezultato.
Tiekėjas Jis atstovauja rezultatų tiekėjui.
ToDoubleBiFunction Tai reiškia funkciją, kuri priima du argumentus ir sukuria dvigubo tipo rezultatą.
ToDoubleFunction Tai reiškia funkciją, kuri grąžina dvigubo tipo rezultatą.
ToIntBiFunction Tai reiškia funkciją, kuri priima du argumentus ir grąžina sveikąjį skaičių.
ToIntFunction Tai reiškia funkciją, kuri grąžina sveikąjį skaičių.
ToLongBiFunction Tai reiškia funkciją, kuri priima du argumentus ir pateikia ilgo tipo rezultatą.
ToLongFunction Tai reiškia funkciją, kuri grąžina ilgo tipo rezultatą.
UnaryOperator Tai reiškia vieno operando operaciją, kuri pateikia to paties tipo rezultatą kaip ir operandas.