Kako koristiti korisničko sučelje u Javi?

Kako Koristiti Korisnicko Sucelje U Javi



U Javi, ' Potrošač ” sučelje predstavlja operaciju koja prima jedan ulaz i izvodi neku radnju na njemu bez vraćanja rezultata. Također nudi fleksibilan način za definiranje prilagođenih operacija koje se mogu koristiti u funkcionalnom programiranju poput lambda izraza. Ovaj blog ilustrira implementaciju potrošačkog sučelja u Javi.

Kako koristiti korisničko sučelje u Javi?

' Potrošač ” sučelje nudi enkapsulaciju ili ponašanje koje se može prenositi i izvršavati na različitim mjestima u programu. Promiče višekratno ponašanje koje se može primijeniti na različite ulaze bez dupliciranja koda. Potrošačko sučelje sastoji se od dvije metode, naime ' i onda() ' i ' prihvatiti() ”.







Posjetite donje primjere za razumijevanje obje funkcije zajedno s primjerima kodeka:



Primjer 1: Upotreba metode “andThen()”.



Programer može ulančati više ' Potrošač ' operacije u potpunosti pomoću ' i onda() ” metoda. Vraća novi ' Potrošač ” koji obavlja operaciju trenutnog “ Potrošač ” instanca. Nakon toga, ispunjava operacije nadolazećeg/nakon “ Potrošač ” instanca. To je zadana metoda koja se široko koristi za proces ' Sastav ”.





Sintaksa za ' i onda() ” metoda je umetnuta ispod:

i onda ( Potrošač < ? super T > nakon )



' i onda() “metoda kombinira trenutnog potrošača” super 's drugim potrošačem' nakon ”. I prvo izvršava operaciju trenutnog potrošača, nakon čega slijedi operacija dostavljenog potrošača.

Prođimo kroz program za bolje razumijevanje:

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

javna klasa Root {
public static void main ( Argumenti niza [ ] )
{
// stvaranje glavne metode
Potrošač < Popis < Cijeli broj > > pomnoži = dataEle - >
{
za ( int j = 0 ; j < dataEle.veličina ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Potrošač za prikaz popisa cijelih brojeva
Potrošač < Popis < Cijeli broj > >
ispisuje = dataEle - > dataEle.stream ( ) .za svakoga ( k - > System.out.print ( k + ' ' ) ) ;

Popis < Cijeli broj > dataEle = novi ArrayList < Cijeli broj > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
umnožiti.i Zatim ( ispisuje ) .prihvatiti ( dataEle ) ;
}
}

Objašnjenje gornjeg koda:

  • Prvo, ' Potrošač ”, “ LinkedList ” i povezani uslužni programi uvoze se u Java datoteku. Nakon toga, glavna klasa s imenom “ Korijen ” se stvara.
  • Zatim stvorite sučelje 'Potrošač' vrste Popis pod nazivom ' pomnožiti ' i postavite ga jednako ' ArrayList ” koji će biti kreiran u nastavku.
  • Koristi ' za ” petlja koja se ponavlja do duljine “ ArrayList 'nazvan' dataEle ', i množi svaki podatkovni element iz ' dataEle ” sa “ 5 ”.
  • Nakon toga, drugi ' Potrošač ” kreira se sučelje koje ispisuje svaki element na konzoli koji se nakon procesa množenja dohvaća iz streama.
  • Sada stvorite i dodajte lažne podatkovne elemente u ' dataEle ” Popis nizova.
  • Na kraju, “ i onda() ' metoda se poziva s ' prihvatiti() ' metoda koja prihvaća ' dataEle ” ArrayList i vraća rezultat za „ pomnožiti ” redom.

Nakon završetka faze izvršenja:

Snimka pokazuje da je zadatak množenja dovršen korištenjem ' i onda() ' metoda ' Potrošač ' sučelje.

Primjer 2: Korištenje metode “accept()”.

' prihvatiti() ' metoda je funkcionalna metoda ' Potrošač ' sučelje. Prihvaća jedan argument tipa ' T ” i izvodi navedene/potrebne operacije na njemu. Vrijednost ' Null ' ne smije mu se pružiti jer ne prihvaća ' Null ” vrijednosti i generirajte iznimku.

Njegova sintaksa je navedena u nastavku:

void prihvatiti ( < snažna > T snažna > t )

U gornjoj sintaksi, ' t ” je jedini argument na temelju kojeg se određene operacije izvode.

Posjetimo donji blok koda za bolje razumijevanje:

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

// uvoz komunalnih usluga u Java datoteka
javna klasa Root {
public static void main ( Argumenti niza [ ] ) // stvaranje glavne metode
{
Potrošač < Cijeli broj > disp = k - > System.out.println ( k ) ;
disp.prihvatiti ( 255 ) ;
Potrošač < Popis < Cijeli broj > > pomnoži = dataEle - >
{
za ( int k = 0 ; k < dataEle.veličina ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Potrošač < Popis < Cijeli broj > >
ispisuje = dataEle - > dataEle.stream ( ) .za svakoga ( j - > System.out.print ( j + '
'
) ) ;
Popis < Cijeli broj > dataEle = novi ArrayList < Cijeli broj > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Implementirati modificiranje koristeći prihvati ( )
umnožiti.prihvatiti ( dataEle ) ;
// Implementirajte dispList koristeći accept ( )
ispisuje.prihvatiti ( dataEle ) ;
}
}

Objašnjenje gornjeg koda:

  • Prvo, ' Potrošač ” sučelje pod nazivom “ disp ” se stvara koji prikazuje dane parametre na konzoli, bez izvođenja bilo kakve operacije.
  • Sada, ' prihvatiti() ' metoda se poziva pomoću ' disp ” Potrošač i vrijednost “ 255 ” prosljeđuje se ovoj metodi.
  • Dalje, još jedan “ Potrošač ' stvoreno je sučelje koje koristi ' za ” petlja za primjenu množenja na svaki stalni element ArrayList-a pod nazivom “ dataEle ”.
  • Nakon toga stvorite još jedan ' Potrošač ' sučelje za prikaz ' dataEle ” rezultira nakon primjene množenja koje dolazi iz toka.
  • Zatim inicijalizirajte ArrayList ' dataEle ' s lažnim elementima podataka i upotrijebite ' prihvatiti() ' metoda s ' pomnožiti ' sučelje.
  • Na kraju pozovite ' prihvatiti() ' metodom pomoću ' ispisuje ” sučelje za prikaz rezultata nakon primjene množenja u zapisniku konzole.

Nakon završetka izvršenja:

Gornja snimka prikazuje da je više potrošačkih sučelja pozvano jedno po jedno koristeći ' prihvatiti() ” metoda.

Primjer 3: Rukovanje iznimkom za funkciju After

Izuzetak nastaje kada ' nakon ' funkcija ' i onda() ' metoda sadrži ' prihvatiti() ” metoda. Ovo čini sučelje koje sadrži podatke koje sučelja trebaju obraditi koristeći metode potrošačkog sučelja kao što je prikazano u nastavku:

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

javna klasa Root {
public static void main ( Argumenti niza [ ] )
{
Potrošač < Popis < Cijeli broj > > pomnožiti = dataEle - >
{
za ( int j = 0 ; j < = podaciEle.veličina ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Potrošač za prikaz popisa cijelih brojeva
Potrošač < Popis < Cijeli broj > >
ispisati = dataEle - > dataEle.stream ( ) .za svakoga ( ja - > System.out.print ( ja + ' ' ) ) ;
Popis < Cijeli broj > dataEle = novi ArrayList < Cijeli broj > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
probati {
ispisati.i Zatim ( pomnožiti ) .prihvatiti ( dataEle ) ;
}
ulov ( Iznimka e ) {
System.out.println ( 'Iznimka: ' + i ) ;
}
}
}

Objašnjenje gornjeg bloka koda:

  • Prvo, ' Potrošač ” stvoreno je sučelje koje jednostavno višestruko “ 5 ” cijele brojeve s elementima podataka koji se nalaze u navedenom ArrayList-u.
  • Dalje, drugi “ Potrošač ” sučelje je stvoreno za prikaz svakog podatkovnog elementa ArrayList-a koji je primio tok.
  • Nakon toga, ArrayList se kreira i inicijalizira lažnim vrijednostima tipa cijelog broja.
  • Onda ' probati ' koristi se blok u kojem je ' i onda() ' metoda se poziva pomoću ' ispisati ' sučelje.
  • To uzrokuje ' IndexOutOfBoundsException ' jer ' za ” prekoračeno je ograničenje iteracije petlje, što se rješava pomoću „ ulov ' blok.

Nakon završetka faze izvršenja:

Snimka pokazuje da je IndexOutOfBoundsException generirao kompajler.

Zaključak

' Potrošač ” sučelje pruža način definiranja ponašanja za višekratnu upotrebu i izvođenja radnji na ulaznim podacima bez vraćanja rezultata. Sastoji se od ' prihvatiti() ' i ' i onda() ” metode. Često se koristi za zadatke obrade podataka, gdje korisnici trebaju izvršiti radnju na svakom elementu zbirke ili toka. To je sve o korištenju i implementaciji Consumer sučelja u Javi.