Com utilitzar la interfície de consum a Java?

Com Utilitzar La Interficie De Consum A Java



A Java, el ' Consumidor ” interfície representa una operació que rep una única entrada i realitza alguna acció sobre ella sense retornar un resultat. També ofereix una manera flexible de definir operacions personalitzades que es poden utilitzar en programació funcional com expressions lambda. Aquest bloc il·lustra la implementació d'una interfície de consum en Java.

Com utilitzar la interfície de consum a Java?

El ' Consumidor La interfície ofereix l'encapsulació o el comportament que es pot passar i executar en diferents ubicacions del programa. Promou un comportament reutilitzable que es pot aplicar a diferents entrades sense duplicar codi. La interfície del consumidor consta de dos mètodes, a saber, ' i llavors() ' i ' acceptar () ”.







Visiteu els exemples següents per entendre ambdues funcions juntament amb exemples de còdecs:



Exemple 1: ús del mètode 'andThen()'.



El desenvolupador pot encadenar múltiples ' Consumidor ” operacions del tot utilitzant el “ i llavors() ” mètode. Torna un nou ' Consumidor ” que realitza el funcionament del corrent “ Consumidor ” exemple. Després d'això, compleix les operacions del proper/després ' Consumidor ” exemple. És el mètode predeterminat que s'utilitza àmpliament per al procés de ' Composició ”.





La sintaxi per a ' i llavors() ” s'insereix a continuació:

i llavors ( Consumidor < ? super T > després )



El ' i llavors() 'El mètode combina el consumidor actual' súper 'amb un altre consumidor' després ”. I executa primer l'operació del consumidor actual, seguida de l'operació del consumidor proporcionat.

Passem per un programa per a una millor comprensió:

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

arrel de classe pública {
principal buit estàtic públic ( Arguments de cadena [ ] )
{
// creació del mètode principal
Consumidor < Llista < Enter > > multiplicar = dataEle - >
{
per ( int j = 0 ; j < dataEle.size ( ) ; j++ ) {
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
}
} ;
// Consumidor per mostrar una llista de nombres enters
Consumidor < Llista < Enter > >
impressions = dataEle - > dataEle.stream ( ) .per cadascú ( k - > sistema.out.impressió ( k + ' ' ) ) ;

Llista < Enter > dataEle = nova ArrayList < Enter > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
multiplicar.i Després ( impressions ) .acceptar ( dataEle ) ;
}
}

Explicació del codi anterior:

  • En primer lloc, el ' Consumidor ”, “ LinkedList ” i les utilitats relacionades s'importen al fitxer Java. Després d'això, la classe principal amb el nom ' Arrel ” es crea.
  • A continuació, creeu una interfície 'Consumidor' del tipus Llista anomenada ' multiplicar ” i establiu-lo igual a “ ArrayList ” que es crearà a continuació.
  • Utilitza un ' per 'bucle que itera fins a la durada de ' ArrayList 'anomenat' dataEle ”, i multiplica cada element de dades del “ dataEle ' amb ' 5 ”.
  • Després d'això, un segon' Consumidor Es crea una interfície que imprimeix cada element a la consola que es recupera després del procés de multiplicació d'un flux.
  • Ara, creeu i afegiu elements de dades ficticis al ' dataEle ” ArrayList.
  • Al final, el ' i llavors() El mètode s'anomena amb el acceptar () ' mètode que accepta ' dataEle ” ArrayList i retorna el resultat de “ multiplicar ' en seqüència.

Un cop finalitzada la fase d'execució:

La instantània mostra que la tasca de multiplicació s'ha completat utilitzant el ' i llavors() ' mètode de la ' Consumidor ” interfície.

Exemple 2: ús del mètode “accept()”.

El ' acceptar () El mètode ' és un mètode funcional del ' Consumidor ” interfície. Accepta un sol argument del tipus ' T ” i realitza les operacions especificades/necessàries sobre ell. El valor de ' Nul ' no se li ha de proporcionar ja que no accepta ' Nul ” valors i generar una excepció.

La seva sintaxi es mostra a continuació:

acceptar nul ( < fort > T fort > t )

En la sintaxi anterior, el ' t ” és l'únic argument sobre el qual s'operaran determinades operacions.

Visitem el següent bloc de codi per a una millor comprensió:

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

// importació d'utilitats en Java dossier
arrel de classe pública {
principal buit estàtic públic ( Arguments de cadena [ ] ) // creació del mètode principal
{
Consumidor < Enter > disp = k - > System.out.println ( k ) ;
disp.acceptar ( 255 ) ;
Consumidor < Llista < Enter > > multiplicar = dataEle - >
{
per ( int k = 0 ; k < dataEle.size ( ) ; k++ )
dataEle.set ( k, 5 * dataEle.get ( k ) ) ;
} ;

Consumidor < Llista < Enter > >
impressions = dataEle - > dataEle.stream ( ) .per cadascú ( j - > sistema.out.impressió ( j + '
'
) ) ;
Llista < Enter > dataEle = nova ArrayList < Enter > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
// Implementar la modificació mitjançant acceptar ( )
multiplicar.acceptar ( dataEle ) ;
// Implementeu dispList utilitzant accept ( )
impressions.acceptar ( dataEle ) ;
}
}

Explicació del codi anterior:

  • En primer lloc, el ' Consumidor ' interfície anomenada ' disp Es crea ” que mostra els paràmetres proporcionats a la consola, sense realitzar cap operació.
  • Ara, el ' acceptar () El mètode s'anomena ' disp 'Consumidor, i el valor de' 255 ” es passa a aquest mètode.
  • A continuació, un altre ' Consumidor Es crea una interfície que utilitza la per ' bucle per aplicar la multiplicació a cada element resident de la ArrayList anomenat ' dataEle ”.
  • Després d'això, creeu un més ' Consumidor ” interfície per mostrar la “ dataEle ” els elements resulten després d'aplicar la multiplicació que ve del corrent.
  • A continuació, inicialitzeu ArrayList ' dataEle ” amb elements de dades ficticis i utilitzeu el “ acceptar () ' mètode amb el ' multiplicar ” interfície.
  • Al final, crida al ' acceptar () ” mitjançant el mètode “ impressions ” per mostrar el resultat després d'aplicar la multiplicació al registre de la consola.

Després del final de l'execució:

La instantània anterior mostra que s'han cridat a diverses interfícies de consumidor una a la vegada mitjançant el ' acceptar () ” mètode.

Exemple 3: Gestió de l'excepció per a la funció After

L'excepció sorgeix quan el ' després ” funció de la “ i llavors() El mètode conté un acceptar () ” mètode. Això crea una interfície que conté dades per ser processades per interfícies que utilitzen mètodes d'interfície de consumidor com es mostra a continuació:

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

arrel de classe pública {
principal buit estàtic públic ( Arguments de cadena [ ] )
{
Consumidor < Llista < Enter > > multiplicar = dataEle - >
{
per ( int j = 0 ; j < = dataEle.size ( ) ; j++ )
dataEle.set ( j, 5 * dataEle.get ( j ) ) ;
} ;
// Consumidor per mostrar una llista de nombres enters
Consumidor < Llista < Enter > >
imprimir = dataEle - > dataEle.stream ( ) .per cadascú ( jo - > sistema.out.impressió ( i + ' ' ) ) ;
Llista < Enter > dataEle = nova ArrayList < Enter > ( ) ;
dataEle.add ( 4 ) ;
dataEle.add ( 7 ) ;
dataEle.add ( 12 ) ;
dataEle.add ( 16 ) ;
provar {
imprimir.i després ( multiplicar ) .acceptar ( dataEle ) ;
}
agafar ( Excepció e ) {
System.out.println ( 'Excepció:' + i ) ;
}
}
}

Explicació del bloc de codi anterior:

  • En primer lloc, el ' Consumidor ' es crea una interfície que simplement múltiples ' 5 ” nombres enters amb els elements de dades que resideixen a la ArrayList proporcionada.
  • A continuació, el segon ' Consumidor ” es crea una interfície per mostrar cada element de dades de la ArrayList que rep el flux.
  • Després d'això, la ArrayList es crea i s'inicia amb valors de tipus enter ficticis.
  • Aleshores el ' provar s'utilitza el bloc en què el ' i llavors() El mètode s'anomena ' imprimir ” interfície.
  • Provoca el ' IndexOutOfBoundsException ' perquè el ' per ' s'ha superat el límit d'iteració del bucle, que es resol amb ' agafar ' bloc.

Un cop finalitzada la fase d'execució:

La instantània mostra que el compilador ha generat IndexOutOfBoundsException.

Conclusió

El ' Consumidor ” La interfície proporciona una manera de definir un comportament reutilitzable i realitzar accions sobre les dades d'entrada sense retornar un resultat. Consisteix en ' acceptar () ' i ' i llavors() ” mètodes. Sovint s'utilitza per a tasques de processament de dades, on els usuaris necessiten realitzar una acció sobre cada element d'una col·lecció o flux. Això és tot sobre l'ús i la implementació de la interfície Consumer a Java.