Kuidas Javas tarbijaliidest kasutada?

Kuidas Javas Tarbijaliidest Kasutada



Javas on ' Tarbija ” liides kujutab endast toimingut, mis võtab vastu ühe sisendi ja sooritab sellega mõne toimingu ilma tulemust tagastamata. See pakub ka paindlikku viisi kohandatud operatsioonide määratlemiseks, mida saab kasutada funktsionaalses programmeerimises, nagu lambda-avaldised. See ajaveeb illustreerib tarbijaliidese rakendamist Javas.

Kuidas Javas tarbijaliidest kasutada?

' Tarbija ” liides pakub kapseldamist või käitumist, mida saab programmi erinevates kohtades edasi anda ja käivitada. See soodustab korduvkasutatavat käitumist, mida saab rakendada erinevatele sisenditele ilma koodi dubleerimata. Tarbijaliides koosneb kahest meetodist, nimelt ' ja siis() ” ja „ aktsepteeri () ”.







Mõlema funktsiooni ja koodeki näidete mõistmiseks vaadake allolevaid näiteid:



Näide 1: „andThen()” meetodi kasutamine



Arendaja saab aheldada mitu ' Tarbija ' toiminguid, kasutades ' ja siis() ” meetod. See tagastab uue ' Tarbija ', mis täidab praeguse ' Tarbija ” näide. Pärast seda täidab eelseisva/pärast „ Tarbija ” näide. See on vaikemeetod, mida kasutatakse laialdaselt protsessis ' Koosseis ”.





Süntaks ' ja siis() ” meetod on lisatud allpool:

ja siis ( Tarbija < ? super T > pärast )



' ja siis() 'meetod ühendab praeguse tarbija' Super 'teise tarbijaga' pärast ”. Ja see teostab esmalt praeguse tarbija toimingu, millele järgneb pakutava tarbija toiming.

Parema mõistmise huvides käime läbi programmi:

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

avalik klass Juur {
avalik static void main ( String args [ ] )
{
// põhimeetodi loomine
Tarbija < Nimekiri < Täisarv > > korrutada = dataEle - >
{
jaoks ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Tarbija täisarvude loendi kuvamiseks
Tarbija < Nimekiri < Täisarv > >
prindib = dataEle - > dataEle.stream ( ) .igaühele ( k - > System.out.print ( k + ' ' ) ) ;

Nimekiri < Täisarv > dataEle = uus ArrayList < Täisarv > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
korrutada.jaSiis ( trükised ) .võta vastu ( dataEle ) ;
}
}

Ülaltoodud koodi selgitus:

  • Esiteks, ' Tarbija ”, „ Lingitud nimekiri ” ja sellega seotud utiliidid imporditakse Java-faili. Pärast seda põhiklass nimega ' Juur ” on loodud.
  • Järgmisena looge 'Tarbija' liides, mille tüüp on loend nimega ' korrutada ' ja määrake see võrdseks väärtusega ' ArrayList ', mis luuakse allpool.
  • See kasutab ' jaoks ' tsükkel, mis kordub '' pikkuseni ArrayList 'nimega' dataEle ja korrutab iga andmeelemendi dataEle ' koos ' 5 ”.
  • Pärast seda teine ​​' Tarbija Luuakse liides, mis prindib konsooli iga elemendi, mis hangitakse pärast voost korrutamist.
  • Nüüd looge ja lisage näidisandmeelemendid ' dataEle ”ArrayList.
  • Lõpuks ' ja siis() 'meetodit kutsutakse koos ' aktsepteeri () meetod, mis aktsepteerib dataEle ' ArrayList ja tagastab tulemuse ' korrutada ' järjest.

Pärast täitmisfaasi lõppu:

Pilt näitab, et korrutamisülesanne on lõpule viidud, kasutades ' ja siis() ' meetod ' Tarbija ” liides.

Näide 2: „accept()” meetodi kasutamine

' aktsepteeri () 'meetod on ' Tarbija ” liides. See aktsepteerib üht tüüpi argumenti ' T ” ja teeb sellega määratud/vajalikud toimingud. väärtus ' Null ' ei tohi sellele esitada, kuna see ei aktsepteeri ' Null ” väärtusi ja luua erandi.

Selle süntaks on toodud allpool:

tühine aktsepteerimine ( < tugev > T tugev > t )

Ülaltoodud süntaksis on ' t ” on ainus argument, mille alusel teatud toiminguid tehakse.

Parema mõistmise huvides külastame allolevat koodiplokki:

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

// kommunaalteenuste import sisse Java faili
avalik klass Juur {
avalik static void main ( String args [ ] ) // põhimeetodi loomine
{
Tarbija < Täisarv > disp = k - > System.out.println ( k ) ;
disp.accept ( 255 ) ;
Tarbija < Nimekiri < Täisarv > > korrutada = dataEle - >
{
jaoks ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Tarbija < Nimekiri < Täisarv > >
prindib = dataEle - > dataEle.stream ( ) .igaühele ( j - > System.out.print ( j + '
'
) ) ;
Nimekiri < Täisarv > dataEle = uus ArrayList < Täisarv > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Rakenda muutmine, kasutades aktsepteerimist ( )
korrutada.vastu võtta ( dataEle ) ;
// Rakendage dispList, kasutades aktsepteerimist ( )
prindib.vastuvõtt ( dataEle ) ;
}
}

Ülaltoodud koodi selgitus:

  • Esiteks, ' Tarbija ' liides nimega ' disp Luuakse, mis kuvab konsoolil etteantud parameetrid ilma toimingut tegemata.
  • Nüüd, ' aktsepteeri () meetodit nimetatakse ' disp Tarbija ja toote väärtus 255 ” antakse sellele meetodile üle.
  • Järgmiseks veel üks ' Tarbija Luuakse liides, mis kasutab jaoks ' tsükkel, et rakendada korrutamist igale ArrayListi elemendile nimega ' dataEle ”.
  • Pärast seda looge veel üks ' Tarbija ' liides, et kuvada ' dataEle ” elemendid tekivad pärast voost tuleva korrutamise rakendamist.
  • Järgmisena lähtestage ArrayList ' dataEle ' koos näivate andmeelementidega ja kasutage ' aktsepteeri () ' meetod koos ' korrutada ” liides.
  • Lõpuks helistage ' aktsepteeri () ' meetodit kasutades ' trükised ” liides, et kuvada tulemus pärast konsoolilogis korrutamise rakendamist.

Pärast täitmise lõppu:

Ülaltoodud hetktõmmis näitab, et mitut tarbijaliidest on kutsutud ükshaaval, kasutades ' aktsepteeri () ” meetod.

Näide 3: Järelfunktsiooni käsitlemise erand

Erand tekib siis, kui ' pärast funktsioon ' ja siis() ' meetod sisaldab ' aktsepteeri () ” meetod. See muudab liidese, mis hoiab andmeid, mida liidesed töötlevad tarbijaliidese meetodeid kasutades, nagu on näidatud allpool:

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

avalik klass Juur {
avalik static void main ( String args [ ] )
{
Tarbija < Nimekiri < Täisarv > > korrutada = dataEle - >
{
jaoks ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Tarbija täisarvude loendi kuvamiseks
Tarbija < Nimekiri < Täisarv > >
printida = dataEle - > dataEle.stream ( ) .igaühele ( mina - > System.out.print ( mina + ' ' ) ) ;
Nimekiri < Täisarv > dataEle = uus ArrayList < Täisarv > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
proovige {
print.jaSiis ( korrutada ) .nõusta ( dataEle ) ;
}
püüda ( Erand e ) {
System.out.println ( 'Erand:' + ja ) ;
}
}
}

Ülaltoodud koodiploki selgitus:

  • Esiteks, ' Tarbija 'Luuakse liides, millel on lihtsalt mitu' 5 ” täisarvud koos andmeelementidega, mis asuvad esitatud ArrayListis.
  • Järgmisena teine ​​' Tarbija ” liides luuakse voo poolt vastuvõetud ArrayListi iga andmeelemendi kuvamiseks.
  • Pärast seda luuakse ArrayList ja lähtestatakse näivtäisarvu tüüpi väärtustega.
  • Siis ' proovige Kasutatakse plokki ', milles ' ja siis() meetodit nimetatakse ' printida ” liides.
  • See põhjustab ' IndexOutOfBoundsException ', sest' jaoks ' tsükli iteratsiooni limiit on ületatud, mille lahendab ' püüda ” plokk.

Pärast täitmisfaasi lõppu:

Pilt näitab, et kompilaator on loonud IndexOutOfBoundsException.

Järeldus

' Tarbija ” liides pakub viisi korduvkasutatava käitumise määratlemiseks ja sisendandmetega toimingute tegemiseks ilma tulemust tagastamata. See koosneb ' aktsepteeri () ” ja „ ja siis() ” meetodid. Seda kasutatakse sageli andmetöötlustoimingute jaoks, kus kasutajad peavad kogu või voo iga elemendiga toimingu sooritama. See kõik puudutab Java kasutajaliidese kasutamist ja juurutamist.