Ako používať spotrebiteľské rozhranie v jazyku Java?

Ako Pouzivat Spotrebitelske Rozhranie V Jazyku Java



V Jave je „ Spotrebiteľ ” rozhranie predstavuje operáciu, ktorá prijíma jeden vstup a vykonáva na ňom nejakú akciu bez toho, aby vrátila výsledok. Ponúka tiež flexibilný spôsob definovania vlastných operácií, ktoré možno využiť vo funkčnom programovaní, ako sú výrazy lambda. Tento blog ilustruje implementáciu spotrebiteľského rozhrania v jazyku Java.

Ako používať spotrebiteľské rozhranie v jazyku Java?

' Spotrebiteľ ” rozhranie ponúka zapuzdrenie alebo správanie, ktoré možno odovzdať a vykonať na rôznych miestach v programe. Podporuje opakovane použiteľné správanie, ktoré možno použiť na rôzne vstupy bez duplikovania kódu. Spotrebiteľské rozhranie pozostáva z dvoch metód, a to „ a potom() “ a „ súhlasiť() “.







Pozrite si nižšie uvedené príklady, aby ste pochopili obe funkcie spolu s príkladmi kodekov:



Príklad 1: Použitie metódy „andThen()“.



Vývojár môže reťaziť viacero „ Spotrebiteľ ” operácie úplne pomocou “ a potom() “. Vracia nový „ Spotrebiteľ “, ktorý vykonáva operáciu aktuálneho “ Spotrebiteľ “ príklad. Potom vykoná operácie nadchádzajúceho/po „ Spotrebiteľ “ príklad. Je to predvolená metóda, ktorá je široko používaná pre proces „ Zloženie “.





Syntax pre „ a potom() “metóda sa vkladá nižšie:

a potom ( Spotrebiteľ < ? super T > po )



' a potom() “metóda kombinuje súčasného spotrebiteľa” Super “s iným spotrebiteľom” po “. A najprv vykoná operáciu aktuálneho spotrebiteľa, po ktorej nasleduje operácia poskytnutého spotrebiteľa.

Poďme si prejsť programom pre lepšie pochopenie:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

Verejná trieda Root {
public static void main ( String args [ ] )
{
// vytvorenie hlavnej metódy
Spotrebiteľ < Zoznam < Celé číslo > > násobiť = dataEle - >
{
pre ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Spotrebiteľ na zobrazenie zoznamu celých čísel
Spotrebiteľ < Zoznam < Celé číslo > >
prints = dataEle - > dataEle.stream ( ) .pre každý ( k - > System.out.print ( k + '' ) ) ;

Zoznam < Celé číslo > dataEle = nový ArrayList < Celé číslo > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
množiť.a Potom ( výtlačkov ) .súhlasiť ( dataEle ) ;
}
}

Vysvetlenie vyššie uvedeného kódu:

  • Po prvé, „ Spotrebiteľ “, “ LinkedList ” a súvisiace nástroje sa importujú do súboru Java. Potom hlavná trieda s názvom „ Root “ je vytvorený.
  • Ďalej vytvorte „spotrebiteľské“ rozhranie typu Zoznam s názvom „ množiť “ a nastavte ho na hodnotu „ ArrayList “, ktorý sa vytvorí nižšie.
  • Využíva sa „ pre 'cyklus, ktorý sa opakuje až do dĺžky ' ArrayList “ s názvom “ dataEle “ a vynásobí každý dátový prvok „ dataEle “ s “ 5 “.
  • Potom druhá „ Spotrebiteľ ” sa vytvorí rozhranie, ktoré vytlačí každý prvok na konzole, ktorý sa získa po procese násobenia z prúdu.
  • Teraz vytvorte a pridajte fiktívne dátové prvky do „ dataEle 'ArrayList.'
  • Na záver, „ a potom() ” metóda sa volá pomocou “ súhlasiť() “ metóda, ktorá akceptuje “ dataEle ” ArrayList a vráti výsledok “ množiť ' v sekvencii.

Po ukončení vykonávacej fázy:

Snímka ukazuje, že úloha násobenia bola dokončená pomocou „ a potom() “metóda “ Spotrebiteľ ' rozhranie.

Príklad 2: Použitie metódy „accept()“.

' súhlasiť() “metóda je funkčná metóda “ Spotrebiteľ ' rozhranie. Prijíma jediný argument typu „ T “ a vykoná na ňom špecifikované/potrebné operácie. Hodnota „ Nulový “ sa jej nesmie poskytnúť, pretože neprijíma “ Nulový hodnoty a vygenerovať výnimku.

Jeho syntax je uvedená nižšie:

neplatné prijať ( < silný > T silný > t )

Vo vyššie uvedenej syntaxi je „ t “ je jediný argument, na základe ktorého sa vykonávajú určité operácie.

Pre lepšie pochopenie navštívte nižšie uvedený blok kódu:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

// dovozné nástroje v Java súbor
Verejná trieda Root {
public static void main ( String args [ ] ) // vytvorenie hlavnej metódy
{
Spotrebiteľ < Celé číslo > disp = k - > System.out.println ( k ) ;
disp.prijať ( 255 ) ;
Spotrebiteľ < Zoznam < Celé číslo > > násobiť = dataEle - >
{
pre ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Spotrebiteľ < Zoznam < Celé číslo > >
prints = dataEle - > dataEle.stream ( ) .pre každý ( j - > System.out.print ( j + '
'
) ) ;
Zoznam < Celé číslo > dataEle = nový ArrayList < Celé číslo > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Implementujte úpravu pomocou príkazu Prijať ( )
množiť.prijať ( dataEle ) ;
// Implementujte dispList pomocou funkcie accept ( )
výtlačky.prijať ( dataEle ) ;
}
}

Vysvetlenie vyššie uvedeného kódu:

  • Po prvé, „ Spotrebiteľ “rozhranie s názvom “ disp “, ktorý zobrazí poskytnuté parametre na konzole bez vykonania akejkoľvek operácie.
  • Teraz, „ súhlasiť() “ metóda sa volá „ disp „Spotrebiteľ a hodnota“ 255 ” prechádza do tejto metódy.
  • Ďalej, ďalší “ Spotrebiteľ “ je vytvorené rozhranie, ktoré využíva „ pre ” slučka na použitie násobenia na každý sídliaci prvok ArrayList s názvom “ dataEle “.
  • Potom vytvorte ešte jeden „ Spotrebiteľ rozhranie na zobrazenie „ dataEle ” prvky vznikajú po použití násobenia, ktoré pochádza z prúdu.
  • Ďalej inicializujte ArrayList “ dataEle “ s fiktívnymi dátovými prvkami a použite „ súhlasiť() “ metóda s “ množiť ' rozhranie.
  • Na záver zavolajte na „ súhlasiť() “ pomocou metódy “ výtlačkov ” rozhranie na zobrazenie výsledku po použití násobenia v protokole konzoly.

Po ukončení vykonávania:

Vyššie uvedená snímka zobrazuje, že viaceré spotrebiteľské rozhrania boli volané naraz pomocou „ súhlasiť() “.

Príklad 3: Spracovanie výnimky pre funkciu After

Výnimka nastáva, keď „ po “funkcia “ a potom() “metóda obsahuje “ súhlasiť() “. Toto vytvára rozhranie, ktoré obsahuje údaje, ktoré majú byť spracované rozhraniami pomocou metód spotrebiteľského rozhrania, ako je uvedené nižšie:

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

Verejná trieda Root {
public static void main ( String args [ ] )
{
Spotrebiteľ < Zoznam < Celé číslo > > množiť = dataEle - >
{
pre ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Spotrebiteľ na zobrazenie zoznamu celých čísel
Spotrebiteľ < Zoznam < Celé číslo > >
vytlačiť = dataEle - > dataEle.stream ( ) .pre každý ( ja - > System.out.print ( ja + '' ) ) ;
Zoznam < Celé číslo > dataEle = nový ArrayList < Celé číslo > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
skúste {
vytlačiť.a Potom ( množiť ) .súhlasiť ( dataEle ) ;
}
chytiť ( Výnimka e ) {
System.out.println ( 'Výnimka:' + a ) ;
}
}
}

Vysvetlenie vyššie uvedeného bloku kódu:

  • Po prvé, „ Spotrebiteľ vytvorí sa rozhranie, ktoré jednoducho znásobí 5 ” celé čísla s dátovými prvkami nachádzajúcimi sa v poskytnutom ArrayList.
  • Ďalej, druhý „ Spotrebiteľ ” rozhranie je vytvorené na zobrazenie každého dátového prvku ArrayList, ktorý je prijatý prúdom.
  • Potom sa vytvorí ArrayList a inicializuje sa fiktívnymi hodnotami typu celé číslo.
  • Potom ' skúste Používa sa blok “, v ktorom je “ a potom() “ metóda sa volá „ vytlačiť ' rozhranie.
  • Spôsobuje to „ IndexOutOfBoundsException ' pretože ' pre ” je prekročený limit iterácie slučky, čo je vyriešené príkazom “ chytiť “blok.

Po ukončení vykonávacej fázy:

Snímka ukazuje, že kompilátor vygeneroval výnimku IndexOutOfBoundsException.

Záver

' Spotrebiteľ ” rozhranie poskytuje spôsob, ako definovať opakovane použiteľné správanie a vykonávať akcie so vstupnými údajmi bez vrátenia výsledku. Skladá sa to z ' súhlasiť() “ a „ a potom() “ metódy. Často sa používa na úlohy spracovania údajov, kde používatelia potrebujú vykonať akciu na každom prvku kolekcie alebo streamu. To je všetko o použití a implementácii spotrebiteľského rozhrania v jazyku Java.