logo

Java funkcionālās saskarnes

Saskarne, kas satur tieši vienu abstraktu metodi, ir pazīstama kā funkcionāls interfeiss. Tam var būt jebkurš noklusējuma statisko metožu skaits, taču tajā var būt tikai viena abstrakta metode. Tā var arī deklarēt objektu klases metodes.

Funkcionālais interfeiss ir pazīstams arī kā Single Abstract Method Interfaces vai SAM interfeiss. Tā ir jauna Java funkcija, kas palīdz sasniegt funkcionālu programmēšanas pieeju.


1. piemērs

 @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'); } } 
Izmēģiniet to tūlīt

Izvade:

 Hello there 

Funkcionālajam interfeisam var būt objektu klases metodes. Skatiet tālāk redzamajā piemērā.

2. piemērs

 @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'); } } 
Izmēģiniet to tūlīt

Izvade:

 Hello there 

Nederīgs funkcionālais interfeiss

Funkcionāls interfeiss var paplašināt citu interfeisu tikai tad, ja tam nav nevienas abstraktas metodes.

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

Izvade:

 compile-time error 

3. piemērs

Nākamajā piemērā funkcionālais interfeiss tiek paplašināts līdz nefunkcionālam interfeisam.

 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(); } } 
Izmēģiniet to tūlīt

Izvade:

 Hello there Do it now 

Java iepriekš definētas funkcionālās saskarnes

Java nodrošina iepriekš definētas funkcionālās saskarnes funkcionālās programmēšanas veikšanai, izmantojot lambda un metožu atsauces.

Varat arī definēt savu pielāgoto funkcionālo saskarni. Tālāk ir norādīts funkcionālo interfeisu saraksts, kas ir ievietoti java.util.function pakotnē.


Interfeiss Apraksts
BiPatērētājs Tas attēlo darbību, kas pieņem divus ievades argumentus un neatgriež rezultātu.
Patērētājs Tas apzīmē darbību, kas pieņem vienu argumentu un neatgriež rezultātu.
Funkcija Tas apzīmē funkciju, kas pieņem vienu argumentu un atgriež rezultātu.
Predikāts Tas attēlo viena argumenta predikātu (būla vērtības funkciju).
BiFunction Tā apzīmē funkciju, kas pieņem divus argumentus un atgriež rezultātu.
Binārais operators Tas attēlo darbību ar diviem viena un tā paša datu tipa operandiem. Tas atgriež tāda paša veida rezultātu kā operandi.
BiPredicate Tas attēlo divu argumentu predikātu (būla vērtības funkciju).
BooleanSupplier Tas ir Būla vērtību rezultātu piegādātājs.
DoubleBinaryOperator Tas attēlo darbību ar diviem dubultā tipa operandiem un atgriež dubultā tipa vērtību.
DoubleConsumer Tas apzīmē darbību, kas pieņem vienu dubultā tipa argumentu un neatgriež rezultātu.
DoubleFunction Tā apzīmē funkciju, kas pieņem dubultā tipa argumentu un rada rezultātu.
DoublePredicate Tas attēlo viena dubultā tipa argumenta predikātu (būla vērtības funkciju).
DoubleSupplier Tas ir dubultā tipa rezultātu piegādātājs.
DoubleToIntFunction Tā apzīmē funkciju, kas pieņem dubultā tipa argumentu un rada int tipa rezultātu.
DoubleToLongFunction Tā apzīmē funkciju, kas pieņem dubultā tipa argumentu un rada gara tipa rezultātu.
DoubleUnaryOperator Tas attēlo darbību ar vienu dubultā tipa operandu, kas rada dubultā tipa rezultātu.
IntBinaryOperator Tas attēlo darbību ar diviem int tipa operandiem un atgriež int tipa rezultātu.
IntConsumer Tas apzīmē darbību, kas pieņem vienu vesela skaitļa argumentu un neatgriež rezultātu.
IntFunction Tā apzīmē funkciju, kas pieņem vesela skaitļa argumentu un atgriež rezultātu.
IntPredicate Tas attēlo viena vesela skaitļa argumenta predikātu (būla vērtības funkciju).
IntSupplier Tas apzīmē vesela skaitļa tipa piegādātāju.
IntToDoubleFunction Tas apzīmē funkciju, kas pieņem vesela skaitļa argumentu un atgriež dubultu.
IntToLongFunction Tas apzīmē funkciju, kas pieņem vesela skaitļa argumentu un atgriež garo.
IntUnaryOperator Tas attēlo darbību ar vienu veselu skaitļu operanda, kas rada veselu skaitļa rezultātu.
LongBinaryOperator Tas attēlo operāciju ar diviem gariem operandiem un atgriež garā tipa rezultātu.
LongConsumer Tas apzīmē darbību, kas pieņem vienu gara tipa argumentu un neatgriež rezultātu.
LongFunction Tā apzīmē funkciju, kas pieņem gara tipa argumentu un atgriež rezultātu.
LongPredicate Tas attēlo viena gara tipa argumenta predikātu (būla vērtības funkciju).
LongSupplier Tas ir garā tipa rezultātu piegādātājs.
LongToDoubleFunction Tā apzīmē funkciju, kas pieņem gara tipa argumentu un atgriež dubultā tipa rezultātu.
LongToIntFunction Tas apzīmē funkciju, kas pieņem gara tipa argumentu un atgriež veselu rezultātu.
LongUnaryOperator Tas apzīmē operāciju ar vienu garā tipa operandu, kas atgriež garā tipa rezultātu.
ObjDoubleConsumer Tas apzīmē darbību, kas pieņem objektu un dubulto argumentu un neatgriež rezultātu.
ObjIntConsumer Tas apzīmē darbību, kas pieņem objektu un vesela skaitļa argumentu. Tas neatgriež rezultātu.
ObjLongConsumer Tas attēlo darbību, kas pieņem objektu un garu argumentu, tā neatgriež rezultātu.
Piegādātājs Tas pārstāv rezultātu piegādātāju.
ToDoubleBiFunction Tā ir funkcija, kas pieņem divus argumentus un rada dubultā tipa rezultātu.
ToDoubleFunction Tas apzīmē funkciju, kas atgriež dubultā tipa rezultātu.
ToIntBiFunction Tas apzīmē funkciju, kas pieņem divus argumentus un atgriež veselu skaitli.
ToIntFunction Tas apzīmē funkciju, kas atgriež veselu skaitli.
ToLongBiFunction Tā apzīmē funkciju, kas pieņem divus argumentus un atgriež garā tipa rezultātu.
ToLongFunction Tā apzīmē funkciju, kas atgriež garā tipa rezultātu.
UnaryOperator Tas attēlo darbību ar vienu operandu, kas atgriež tāda paša veida rezultātu kā tā operands.