Kuinka käyttää kuluttajaliittymää Javassa?

Kuinka Kayttaa Kuluttajaliittymaa Javassa



Javassa ' Kuluttaja ” käyttöliittymä edustaa toimintoa, joka vastaanottaa yhden syötteen ja suorittaa sille jonkin toiminnon ilman tulosta. Se tarjoaa myös joustavan tavan määrittää mukautettuja operaatioita, joita voidaan hyödyntää toiminnallisessa ohjelmoinnissa, kuten lambda-lausekkeissa. Tämä blogi havainnollistaa kuluttajaliittymän käyttöönottoa Javassa.

Kuinka käyttää kuluttajaliittymää Javassa?

' Kuluttaja ” käyttöliittymä tarjoaa kapseloinnin tai käyttäytymisen, joka voidaan välittää ja suorittaa ohjelman eri paikoissa. Se edistää uudelleenkäytettävää toimintaa, jota voidaan soveltaa eri tuloihin ilman koodin kopioimista. Kuluttajaliittymä koostuu kahdesta menetelmästä, nimittäin ' ja sitten() ' ja ' hyväksyä() ”.







Käy alla olevissa esimerkeissä ymmärtääksesi molemmat toiminnot sekä koodekkiesimerkit:



Esimerkki 1: 'andThen()'-menetelmän käyttö



Kehittäjä voi ketjuttaa useita Kuluttaja '-toiminnot kokonaan käyttämällä ' ja sitten() ”menetelmä. Se palauttaa uuden ' Kuluttaja ', joka suorittaa nykyisen ' Kuluttaja ' ilmentymä. Sen jälkeen suorittaa tulevan/jälkeen toiminnan Kuluttaja ' ilmentymä. Se on oletusmenetelmä, jota käytetään laajalti ' Sävellys ”.





Syntaksi kohteelle ' ja sitten() '-menetelmä on lisätty alle:

ja sitten ( Kuluttaja < ? super T > jälkeen )



' ja sitten() 'menetelmä yhdistää nykyisen kuluttajan' super 'toisen kuluttajan kanssa' jälkeen ”. Ja se suorittaa ensin nykyisen kuluttajan toiminnan ja sen jälkeen tarjotun kuluttajan toiminnan.

Käydään läpi ohjelma, jotta ymmärrämme paremmin:

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

julkinen luokka Root {
julkinen static void main ( String args [ ] )
{
// päämenetelmän luominen
Kuluttaja < Lista < Kokonaisluku > > kerro = dataEle - >
{
varten ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Kuluttaja näyttää luettelon kokonaisluvuista
Kuluttaja < Lista < Kokonaisluku > >
tulosteet = dataEle - > dataEle.stream ( ) .jokaiselle ( k - > System.out.print ( k + ' ' ) ) ;

Lista < Kokonaisluku > dataEle = uusi ArrayList < Kokonaisluku > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
kerrotaan.ja sitten ( tulostaa ) .hyväksyä ( dataEle ) ;
}
}

Selitys yllä olevalle koodille:

  • Ensinnäkin ' Kuluttaja ”, “ LinkedList ” ja siihen liittyvät apuohjelmat tuodaan Java-tiedostoon. Sen jälkeen pääluokka nimeltä ' Juuri ' on luotu.
  • Luo seuraavaksi 'Consumer'-käyttöliittymä, jonka tyyppi on luettelo nimeltä ' moninkertaistaa ' ja aseta se yhtä suureksi kuin ' ArrayList ', joka luodaan alla.
  • Se käyttää ' varten 'silmukka, joka toistuu '' pituuteen asti ArrayList ”nimeltään” dataEle ”, ja kertoo jokaisen ” dataEle ' kanssa ' 5 ”.
  • Sen jälkeen toinen ' Kuluttaja ”-käyttöliittymä luodaan, joka tulostaa jokaisen konsolin elementin, joka haetaan kertolaskuprosessin jälkeen virrasta.
  • Luo ja lisää nyt valetietoelementtejä ' dataEle ”ArrayList.
  • Lopulta ' ja sitten() ' -menetelmää kutsutaan ' hyväksyä() 'menetelmä, joka hyväksyy' dataEle ' ArrayList ja palauttaa tuloksen ' moninkertaistaa ' järjestyksessä.

Toteutusvaiheen päätyttyä:

Tilannekuva osoittaa, että kertomistehtävä on suoritettu käyttämällä ' ja sitten() 'menetelmä' Kuluttaja ' käyttöliittymä.

Esimerkki 2: 'accept()'-menetelmän käyttö

' hyväksyä() -menetelmä on toiminnallinen menetelmä Kuluttaja ' käyttöliittymä. Se hyväksyy yhden argumentin tyyppiä ' T ” ja suorittaa sille määritetyt/tarvittavat toiminnot. Arvo ' Tyhjä ' ei saa tarjota sille, koska se ei hyväksy ' Tyhjä ” arvot ja luoda poikkeuksen.

Sen syntaksi on annettu alla:

mitätön hyväksyntä ( < vahva > T vahva > t )

Yllä olevassa syntaksissa ' t ” on ainoa argumentti, jolla tietyt toiminnot ohjataan.

Käymme alla olevassa koodilohkossa ymmärtääksemme paremmin:

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

// apuohjelmien maahantuonti sisään Java tiedosto
julkinen luokka Root {
julkinen static void main ( String args [ ] ) // päämenetelmän luominen
{
Kuluttaja < Kokonaisluku > disp = k - > System.out.println ( k ) ;
disp.accept ( 255 ) ;
Kuluttaja < Lista < Kokonaisluku > > kerro = dataEle - >
{
varten ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Kuluttaja < Lista < Kokonaisluku > >
tulosteet = dataEle - > dataEle.stream ( ) .jokaiselle ( j - > System.out.print ( j + '
'
) ) ;
Lista < Kokonaisluku > dataEle = uusi ArrayList < Kokonaisluku > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Toteuta muokkaa käyttämällä hyväksyä ( )
moninkertaistaa.hyväksyä ( dataEle ) ;
// Ota dispList käyttöön hyväksymällä ( )
tulostaa.hyväksyä ( dataEle ) ;
}
}

Selitys yllä olevalle koodille:

  • Ensinnäkin ' Kuluttaja ' käyttöliittymä nimeltä ' disp ' luodaan, joka näyttää toimitetut parametrit konsolissa suorittamatta mitään toimintoa.
  • Nyt ' hyväksyä() 'menetelmää kutsutaan nimellä ' disp 'Kuluttaja ja arvo' 255 ” siirretään tälle menetelmälle.
  • Seuraavaksi toinen ' Kuluttaja 'käyttöliittymä luodaan, joka käyttää ' varten ' silmukka käyttää kertolaskua jokaiseen ArrayListin elementtiin nimeltä ' dataEle ”.
  • Luo sen jälkeen vielä yksi ' Kuluttaja ' käyttöliittymä näyttääksesi ' dataEle ” -elementit saadaan tuloksena virrasta tulevan kertolaskun soveltamisen jälkeen.
  • Alusta seuraavaksi ArrayList ' dataEle ” valetietoelementeillä ja käytä ” hyväksyä() ' menetelmällä ' moninkertaistaa ' käyttöliittymä.
  • Soita lopuksi ' hyväksyä() ' menetelmällä ' tulostaa ” -käyttöliittymä, joka näyttää tuloksen kertomisen jälkeen konsolin lokissa.

Suorituksen päätyttyä:

Yllä oleva tilannekuva näyttää, että useita kuluttajaliittymiä on kutsuttu yksi kerrallaan käyttämällä ' hyväksyä() ”menetelmä.

Esimerkki 3: Jälkitoiminnon käsittelypoikkeus

Poikkeus syntyy, kun ' jälkeen '-funktion ' ja sitten() ' menetelmä sisältää ' hyväksyä() ”menetelmä. Tämä tekee rajapinnasta, joka sisältää tiedot, joita rajapinnat käsittelevät käyttämällä kuluttajarajapintamenetelmiä alla esitetyllä tavalla:

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

julkinen luokka Root {
julkinen static void main ( String args [ ] )
{
Kuluttaja < Lista < Kokonaisluku > > moninkertaistaa = dataEle - >
{
varten ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Kuluttaja näyttää luettelon kokonaisluvuista
Kuluttaja < Lista < Kokonaisluku > >
Tulosta = dataEle - > dataEle.stream ( ) .jokaiselle ( minä - > System.out.print ( minä + ' ' ) ) ;
Lista < Kokonaisluku > dataEle = uusi ArrayList < Kokonaisluku > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
yrittää {
tulosta.ja sitten ( moninkertaistaa ) .hyväksyä ( dataEle ) ;
}
ottaa kiinni ( Poikkeus e ) {
System.out.println ( 'Poikkeus:' + ja ) ;
}
}
}

Selitys yllä olevasta koodilohkosta:

  • Ensinnäkin ' Kuluttaja 'luodaan käyttöliittymä, joka yksinkertaisesti useita' 5 ” kokonaislukuja, joiden tietoelementit ovat toimitetussa ArrayListissä.
  • Seuraavaksi toinen' Kuluttaja ”-käyttöliittymä luodaan näyttämään jokainen ArrayList-tietoelementti, jonka virta vastaanottaa.
  • Sen jälkeen ArrayList luodaan ja alustetaan valekokonaislukutyyppisillä arvoilla.
  • Sitten ' yrittää '-lohkoa käytetään, jossa ' ja sitten() 'menetelmää kutsutaan nimellä ' Tulosta ' käyttöliittymä.
  • Se aiheuttaa ' IndexOutOfBoundsException ' koska ' varten ' silmukan iteraatioraja on ylitetty, mikä ratkaistaan ​​' ottaa kiinni ” lohko.

Toteutusvaiheen päätyttyä:

Tilannekuva osoittaa, että kääntäjä on luonut IndexOutOfBoundsExceptionin.

Johtopäätös

' Kuluttaja ” käyttöliittymä tarjoaa tavan määritellä uudelleenkäytettävä toiminta ja suorittaa toimintoja syöttötiedoille ilman tulosta. Se koostuu ' hyväksyä() ' ja ' ja sitten() ”menetelmiä. Sitä käytetään usein tietojenkäsittelytehtäviin, joissa käyttäjien on suoritettava toiminto jokaiselle kokoelman tai virran elementille. Siinä on kyse Java-käyttöliittymän käytöstä ja toteutuksesta.