Hogyan használjuk a fogyasztói felületet a Java-ban?

Hogyan Hasznaljuk A Fogyasztoi Feluletet A Java Ban



Java nyelven a „ Fogyasztó ” interfész egy olyan műveletet jelent, amely egyetlen bemenetet kap, és valamilyen műveletet hajt végre rajta anélkül, hogy eredményt adna vissza. Rugalmas módot kínál olyan egyedi műveletek meghatározására is, amelyek felhasználhatók funkcionális programozásban, például lambda-kifejezésekben. Ez a blog a fogyasztói felület Java nyelven való megvalósítását mutatja be.

Hogyan használjuk a fogyasztói felületet a Java-ban?

A ' Fogyasztó ” felület kínálja azt a beágyazást vagy viselkedést, amely átadható és végrehajtható a program különböző helyein. Elősegíti az újrafelhasználható viselkedést, amely a kód megkettőzése nélkül alkalmazható különböző bemenetekre. A fogyasztói felület két módszerből áll, nevezetesen a „ és akkor() ” és „ elfogad() ”.







Tekintse meg az alábbi példákat, hogy megértse mindkét funkciót, valamint kodekpéldákat:



1. példa: Az „andThen()” metódus használata



A fejlesztő több darabot is láncolhat Fogyasztó ' műveletek teljes egészében a ' és akkor() ” módszerrel. Egy újat ad vissza Fogyasztó ', amely az aktuális ' Fogyasztó ' példa. Ezt követően teljesíti a következő/utáni „ Fogyasztó ' példa. Ez az alapértelmezett módszer, amelyet széles körben használnak a „ Fogalmazás ”.





A ' és akkor() ” módszert az alábbiakban illesztjük be:

és akkor ( Fogyasztó < ? szuper T > után )



A ' és akkor() 'módszer egyesíti az aktuális fogyasztót' szuper 'egy másik fogyasztóval' után ”. És először az aktuális fogyasztó műveletét hajtja végre, majd a biztosított fogyasztó műveletét.

Nézzünk végig egy programot a jobb megértés érdekében:

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

nyilvános osztály Gyökér {
public static void main ( String args [ ] )
{
// fő módszer létrehozása
Fogyasztó < Lista < Egész szám > > szorzás = dataEle - >
{
számára ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Fogyasztó az egész számok listájának megjelenítéséhez
Fogyasztó < Lista < Egész szám > >
nyomatok = dataEle - > dataEle.stream ( ) .az egyes ( k - > System.out.print ( k + ' ' ) ) ;

Lista < Egész szám > dataEle = új ArrayList < Egész szám > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
szorozzuk.és Akkor ( nyomatok ) .elfogad ( dataEle ) ;
}
}

A fenti kód magyarázata:

  • Először is a „ Fogyasztó ”, „ LinkedList ” és a kapcsolódó segédprogramok importálódnak a Java fájlba. Ezt követően a fő osztály a „ Gyökér ' létrehozva.
  • Ezután hozzon létre egy Lista típusú „Fogyasztói” felületet „ szaporodnak ” és állítsa egyenlőnek a „ Tömb lista ” amely alább jön létre.
  • Ez egy ' számára ' ciklus, amely a '' hosszáig ismétlődik Tömb lista ' nevezett ' dataEle ”, és megszorozza a „ dataEle ' val vel ' 5 ”.
  • Ezt követően egy második ' Fogyasztó ” interfész jön létre, amely kinyomtatja a konzol minden elemét, amelyet a folyamból való szorzási folyamat után lekér.
  • Most hozzon létre és adjon hozzá ál adatelemeket a „ dataEle ' Tömb lista.
  • Végül a „ és akkor() ' metódus a ' elfogad() 'módszer, amely elfogadja' dataEle ' ArrayList és a '' eredményét adja vissza szaporodnak ' sorban.

A végrehajtási szakasz vége után:

A pillanatkép azt mutatja, hogy a szorzási feladat a „ és akkor() ' módszere a ' Fogyasztó ” interfész.

2. példa: Az „accept()” metódus használata

A ' elfogad() ' módszer a ' Fogyasztó ” interfész. Egyetlen '' típusú argumentumot fogad el T ” és elvégzi rajta a megadott/szükséges műveleteket. Az értéke ' Nulla 'nem szabad megadni neki, mivel nem fogadja el' Nulla ” értékét, és kivételt generál.

A szintaxisát az alábbiakban adjuk meg:

érvénytelen elfogadás ( < erős > T erős > t )

A fenti szintaxisban a „ t ” az egyetlen argumentum, amelyre bizonyos műveleteket végrehajtanak.

Nézzük meg az alábbi kódblokkot a jobb megértés érdekében:

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

// közművek importálása ban ben Jáva fájlt
nyilvános osztály Gyökér {
public static void main ( String args [ ] ) // fő módszer létrehozása
{
Fogyasztó < Egész szám > diszp = k - > System.out.println ( k ) ;
diszp.elfogad ( 255 ) ;
Fogyasztó < Lista < Egész szám > > szorzás = dataEle - >
{
számára ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Fogyasztó < Lista < Egész szám > >
nyomatok = dataEle - > dataEle.stream ( ) .az egyes ( j - > System.out.print ( j + '
'
) ) ;
Lista < Egész szám > dataEle = új ArrayList < Egész szám > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Végezze el a módosítást az elfogadás segítségével ( )
szorozni.elfogadni ( dataEle ) ;
// Valósítsa meg a dispList-et az elfogadás segítségével ( )
nyomtat.elfogad ( dataEle ) ;
}
}

A fenti kód magyarázata:

  • Először is a „ Fogyasztó ' interfész neve ' diszp ” jön létre, amely a megadott paramétereket jeleníti meg a konzolon anélkül, hogy bármilyen műveletet végrehajtana.
  • Most a ' elfogad() ' módszert a ' diszp 'Fogyasztó, és a ' 255 ” kerül át ehhez a módszerhez.
  • Ezután egy másik ' Fogyasztó ' interfész jön létre, amely a ' számára ' hurok a szorzás alkalmazásához az ArrayList minden egyes ' nevű elemére' dataEle ”.
  • Ezután hozzon létre még egyet ' Fogyasztó ' interfész a ' dataEle ” elemek az adatfolyamból származó szorzás alkalmazása után keletkeznek.
  • Ezután inicializálja az ArrayList ' dataEle ' ál adatelemekkel, és használja a ' elfogad() ' módszer a ' szaporodnak ” interfész.
  • A végén hívja a „ elfogad() ' módszer a ' nyomatok ” interfész az eredmény megjelenítéséhez a szorzás alkalmazása után a konzolnaplóban.

A végrehajtás befejezése után:

A fenti pillanatkép azt mutatja, hogy egyszerre több fogyasztói felületet hívtak meg a „ elfogad() ” módszerrel.

3. példa: Kezelési kivétel az utófunkcióhoz

A kivétel akkor keletkezik, ha a „ után ' funkciója a ' és akkor() ' metódus tartalmaz egy ' elfogad() ” módszerrel. Ez olyan interfészt hoz létre, amely az interfészek által feldolgozandó adatokat tárolja a Fogyasztói interfész metódusait használva, az alábbiak szerint:

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

nyilvános osztály Gyökér {
public static void main ( String args [ ] )
{
Fogyasztó < Lista < Egész szám > > szaporodnak = dataEle - >
{
számára ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Fogyasztó az egész számok listájának megjelenítéséhez
Fogyasztó < Lista < Egész szám > >
nyomtatás = dataEle - > dataEle.stream ( ) .az egyes ( én - > System.out.print ( én + ' ' ) ) ;
Lista < Egész szám > dataEle = új ArrayList < Egész szám > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
próbáld ki {
nyomtasd.és Akkor ( szaporodnak ) .elfogad ( dataEle ) ;
}
fogás ( Kivétel e ) {
System.out.println ( 'Kivétel:' + és ) ;
}
}
}

A fenti kódblokk magyarázata:

  • Először is a „ Fogyasztó ' interfész jön létre, amely egyszerűen több' 5 ” egész számok a megadott ArrayListben található adatelemekkel.
  • Ezután a második ' Fogyasztó ” interfész jön létre az ArrayList minden adatelemének megjelenítésére, amelyet a folyam fogad.
  • Ezt követően létrejön az ArrayList, és ál-egész típusú értékekkel inicializálódik.
  • Aztán a ' próbáld ki ' blokkot használják, amelyben a ' és akkor() ' módszert a ' nyomtatás ” interfész.
  • Ez okozza a „ IndexOutOfBoundsException ' mert a ' számára ' ciklus iterációs korlát túllépve, amit a ' fogás ' Blokk.

A végrehajtási szakasz vége után:

A pillanatkép azt mutatja, hogy az IndexOutOfBoundsException parancsot a fordító hozta létre.

Következtetés

A ' Fogyasztó ” interfész lehetőséget biztosít az újrafelhasználható viselkedés meghatározására és a bemeneti adatokon végzett műveletek eredmény visszaadása nélkül. Ez a következőkből áll: ' elfogad() ” és „ és akkor() ” módszerekkel. Gyakran használják adatfeldolgozási feladatokhoz, ahol a felhasználóknak egy műveletet kell végrehajtaniuk a gyűjtemény vagy adatfolyam minden elemén. Ez minden a fogyasztói felület Java-ban való használatáról és megvalósításáról szól.