Ciao, eccolo.
E bentornato.
Continuiamo la nostra discussione sulle interfacce delle funzioni standard nella lezione precedente.
Abbiamo esaminato le interfacce di funzione standard che predicano sulla funzione.
E non parliamo di chi è la funzione più onorata di questo consumatore e fornitore su queste quattro interfacce di
funzione che danneggiano le interfacce di console standard di base all'interno del pacchetto di funzioni Jawa non si
chiama esso.
OK.
Quindi il consumatore come suggerisce il nome è usato per consumare qualcosa ha un singolo metodo chiamato accetta che
prende un barometro e all'interno del corpo si consuma semplicemente il parametro.
OK facciamo qualcosa con l'argomento passato e la metrica restituisce un rifornimento bianco in quanto il nome implica
fornire qualcosa.
OK.
E ha un unico metodo chiamato get.
E non ha alcun parametro ma fa qualcosa.
OK.
Un architetto dipende dall'argomento tipo che passiamo con il fornitore.
Quindi andiamo avanti e guardiamo le due nuove interfacce di funzione e la prima che guarderemo
è quella dei consumatori e dopo guardiamo al fornitore.
Quindi ecco la citazione dalla demo precedente.
Quindi qui abbiamo il bello.
E se il documento supera il predicato, applichiamo una serie di trasformazioni di trasformazione usando
la funzione qui.
E stiamo stampando il documento.
Quindi tutti i quattro documenti stanno passando tutti il predicato e qui stiamo stampando i nomi.
Ora quello che possiamo fare è invece di stamparlo in questo modo, possiamo usare il consumatore.
Ora, per quanto riguarda ciò che faremo, aggiungeremo questi documenti a un idealista.
Quindi, come abbiamo dichiarato un nuovo elenco qui chiamato Target document e stiamo andando ad aggiungere questi documenti in
questo documento di destinazione.
Ari idlest OK perché sono i documenti di destinazione dei quattro documenti che abbiamo documenti Kutaragi che hanno
aiutato a passare il predicato.
Quindi vengono aggiunti qui ora i documenti targer.
Quindi questo è un idealista e su un idealista possiamo invocare ogni metodo ora per ogni metodo è ereditato.
Potrebbe avere e sappiamo che l'elenco deve affrontare la collezione esistente di trofei e interfaccia di
raccolta in estensioni fatte.
Aveva un'interfaccia non rilevabile dell'interfaccia che definisce ogni metodo.
E se ricordate, ne abbiamo discusso ogni singolo metodo nella lezione di iteratore nel
capitolo del libro delle collezioni, in cui ogni metodo prende effettivamente un consumatore come input e acqua.
Invoca il consumatore su ciascuno degli elementi nell'elenco.
Questo è ciò che fa e questo è ciò che faremo arricchiremo ogni metodo.
E stiamo per passare una stampante e attaccare uomini qui usando un lambda e che stamperebbe i documenti
in modo che non abbiamo bisogno di scorrere i documenti in questo modo.
Il metodo Realtek quello che ho fatto.
Quindi andiamo avanti e copiamo questo.
Qui è possibile vedere che ci vuole il consumatore che chiamiamo azione di
design, il che significa che questa asta sarà sotto forma di ciascuno degli elementi e la lista di Basso è piena di bolle qui.
Quindi il documento potrebbe andare oltre il documento.
Quindi non hai bisogno di un trimestrale perché è solo una singola affermazione sul fatto che noi
abbiamo come un'espressione qui il Mirando noi.
Quindi come puoi vedere abbiamo il CMO.
Quindi questo è tutto ciò che c'è da fare al consumatore.
Quindi il consumatore ha un mercato unico chiamato OK accettabile e accetto la logica che viene
fornita qui.
Quindi è così.
Ora per il fornitore diamo un'occhiata a un esempio molto interessante.
Quindi tutti i documenti.
Vediamo se uno qualsiasi dei documenti ha una lunghezza maggiore di 80 caratteri.
Quindi dobbiamo fare un'eccezione.
OK.
Quindi dobbiamo amare questo messaggio.
Dobbiamo stampare quel messaggio sulla console.
Quindi è quello che volevamo sentire.
Quindi tutti questi documenti il secondo documento ha effettivamente una dimensione maggiore di 80.
Quindi andiamo avanti e
implementiamo questo qui e dì che Doc o Glend maggiori di 80 generano un'eccezione sul messaggio nel documento sovradimensionato, ora è buio,
basta stampare.
Quindi c'è un metodo di stampa che ho scritto a lungo sul metodo di stampa è qui.
OK, è un metodo statico nella classe.
Quindi la matematica è un giocatore come input e noi siamo semplicemente come un fornitore disponibile e stiamo invocando il
metodo get e lo stiamo stampando.
Ma quello che stiamo facendo qui è che vogliamo stampare questo messaggio solo quando questa bandiera booleana che è un Faqir
booleano qui chiama la nostra bandiera.
Se è vero solo allora vogliamo stamparlo.
Altrimenti non lo vogliamo stampare.
OK, quindi questa stampa è controllata dalla clag.
Passiamo ora a Pasto la variabile qui il lambda qui.
Quindi la questione non prende alcun parametro quindi è una parentesi vuota.
E quello che vogliamo stampare è il messaggio.
Quindi diciamo di ricevere un messaggio qui.
E aggiungiamo anche qualcosa presto qui.
Sotto il dockage.
OK.
Quindi qui stiamo effettivamente catturando quelli che lambda sta catturando la variabile doc e va a scuola.
OK.
Ecco come stiamo catturando.
E abbiamo discusso di catturare prima.
Quindi è quello che è.
Adesso fammi solo aprire questo caso.
Quindi uno dei documenti è di grandi dimensioni e questo è ciò che stiamo vedendo ora.
La cosa attuale è che se trasformo questo in difetti non stamperà ovviamente, ma ciò che accadrà
è questo.
Quindi questa concatenazione qui succederebbe solo se l'ottenere non funziona.
Quindi se il Flaccus per questa stampa non verrà richiamata la dichiarazione di Alan, questo non verrà
stampato, ma anche questa concatenazione non avviene.
OK, questa è la bellezza di questo approccio di questo idioma.
È un'esecuzione differita senza card.
Questo sta succedendo perché qui abbiamo il fornitore come parametro.
OK.
Quindi solo nell'istanza in cui get non funziona questa concatenazione di queste cose avviene ora invece che
un fornitore.
Se questa fosse una stringa qui e se stessimo passando solo la stringa solo alla casella di concatenazione.
OK.
E in questo caso la concatenazione avviene nel modo giusto.
Quindi, anche se hai l'ipotesi, si ferma qui se lo stai stampando, ma la concatenazione potrebbe accadere.
Quindi ovviamente questo sarà lento.
E se questo messaggio se questo particolare metodo di stampa lo otterrà milioni di
volte, sarà costoso.
OK, ecco come si evita.
Quindi questo è un ottimo linguaggio ed è già stato adottato nell'API di luglio.
Quindi è nell'API Java c'è qualcosa chiamato come un framework di registrazione e la Gelada per riprodurre il pacchetto
di registrazione del medico e progetti professionali.
Utilizzeresti una struttura di registrazione in una sorta di stampa usando una stampa di Alan.
OK, è quello che faresti.
E molto Djala ha un proprio framework di registrazione, ma ci sono anche altri buoni libri di terze parti su
uno di questi è un blocco che Shoji può funzionare.
Quindi la registrazione può funzionare, devi anche conoscere la registrazione.
E ovviamente se stai lavorando per un progetto in un ambiente professionale, utilizzerai un framework di
registrazione.
Quindi hanno già adottato qualcosa di simile e stanno usando un fornitore e lo usano in questo
modo.
Quindi andiamo avanti e osserviamo che il registro Creole funziona solo per vostra informazione.
Ma prima di farlo guardiamo anche all'API per le interfacce di funzione standard OK eccolo qui.
Quindi questa è un'API per la rivista online e stiamo esaminando tutti questi pacchetti qui in laboratorio.
Quindi queste sono le interfacce da Java Adachi alla nostra coscienza.
Quindi queste sono le interfacce standard.
So che puoi vedere la funzione qui.
Quindi è possibile vedere i fornitori di dati attendibili che potrebbero essere anche lì Un-Dead è la
versione per utente per utente per funzione di predicato.
E queste sono cose piuttosto diverse qui è l'interfaccia fornitore e il fornitore ha solo un
singolo metodo chiamato Get.
OK.
Ora qui che è in questa API è possibile utilizzare anche Dustin cardless.
E se fai clic su Usa qui, ti mostrerà tutti i punti dell'API Java in cui viene utilizzata
questa interfaccia di Uplay.
Quindi l'interfaccia di caricamento viene utilizzata in tutti questi diversi pacchetti nel caso in cui si possa vedere che
sono pacchetti diversi che non mentono.
Modulo Cosa dici a conquistatore e logging lo vedremo anche noi.
E gli stream API qui per il nostro articolo sono estremi.
Quindi questi sono i diversi luoghi in cui viene utilizzato.
E se scorri ulteriormente puoi vedere dove esattamente quel fornitore è usato all'interno di quei pacchetti.
OK, per esempio nel lavoro, cosa stai facendo la registrazione del dottore qui.
Quindi viene utilizzato in tutti questi metodi negli Stati Uniti nel framework di registrazione.
OK.
Quindi c'è così dentro il quadro più ampio che esiste una classe chiamata logger e fornitura che viene utilizzata nel
framework di registrazione in Jemadar per sradicare la registrazione.
Quindi ecco la classe Lagat e questo logger più, ad esempio, sta usando l'offerta qui.
Quindi questo è il metodo con cui lavoreresti per registrare il messaggio ma c'è anche un log di quarto
di Medtner sovraccarico.
Qui è log.
Quindi accetta anche un livello e accetta anche un messaggio.
Quindi non ciò che è di livello.
Quindi, livello, qui lascia che apra questo.
Quindi il livello è qui a questo livello.
È anche il record o la registrazione di Angella.
Quindi ci sono diversi livelli che puoi impostare.
Quindi stai registrando il lavoro con la gru, puoi impostare i livelli di registrazione in modo corretto.
OK.
E una volta che lo fai e ogni volta che vuoi registrare un messaggio sei in uno di questi metodi.
Ok registra questo metodo o il registro del problema del fornitore e puoi passare il livello di registrazione appropriato insieme
al messaggio.
OK ora qui dopo che il livello di registrazione è stato impostato su Fine e se si sta lavorando, il metodo di registrazione
ottiene Alexis Servier, quindi stamperà il messaggio OK, registrerà il messaggio.
Ma se passi un livello di registrazione di Sinar, allora non è bloccato.
Quindi qualsiasi cosa al di sopra di questo, in modo che il logging ci metta alla ricerca del livello di registrazione.
Partecipare all'invocazione della questione del registro.
Se si passa uno o più log globali che sono maggiori o uguali a whine, questo porterà il messaggio.
Altrimenti non porterà i messaggi di registrazione degli ID dei messaggi che possono essere stampati sulla console o
possono anche essere stampati su alcuni file e tutto ciò può essere impostato.
In genere, sei stato collegato ad una multa e genererai tali file ogni giorno e avranno
anche un timestamp nel nome in modo che possa essere fatto signore.
Quindi questi livelli di log sono proprio come la bandiera booleana che abbiamo visto nel nostro esempio nella nostra
demo quindi è proprio come Doc e usano anche questi idiomi come la stringa sul player.
Quindi in genere vorresti usare un fornitore e farlo in questo modo.
Quindi la lenticchia d'acqua sarebbe molto più efficiente.
Va bene così se succede qualche concatenazione che potrebbe essere utile.
E se il livello non è se suo se sarà inferiore al livello che è stato inizialmente specificato,
allora il metodo non sarà nel libro sulla concatenazione non accadrà.
Questo è quello.
Quindi l'Adium viene chiamato qui.
Quindi torniamo a questa interfaccia.
E come puoi vedere queste sono tutte le interfacce standard.
Ora, un'ultima cosa che voglio dirti è che ci sono anche queste interfacce di funzioni che cercano di
classificare le primitive specifiche qui.
Quello è uno chiamato in funzione incredibile del consumatore.
Quindi lascia che ti mostri questa intricata doppia funzione in modo che la funzione che conosciamo faccia la trasformazione.
Applica la trasformazione su alcuni input e alcuni output.
OK, dai.
Sei sicuro che se ricordi, ma qui ci vuole perché dice che int raddoppiare.
Quindi fondamentalmente c'è una conversione da Int un po 'di doppio.
Quindi si applica il nome del metodo Asdrubal si impegna e sotto considerevole.
Ora questo è necessario.
Tu o vuoi usarlo.
Se stai lavorando con le primitive, ma se usi le primitive
e se utilizzerai la funzione function o l'interfaccia dell'interfaccia, la boxe avverrà o la boxe entrerà in
gioco e sappiamo che è molto inefficiente.
Quindi ogni volta che si tratta di grandi primitive, si vorrebbe vederlo trasformarlo in
specializzazioni all'interno delle interfacce funzionali standard.
OK, questo è quello che abbiamo.
Quindi dai un'occhiata a questo.
Ci sono molto semplici.
Quindi sai come lavorare con le interfacce del tribunale ed è solo la specializzazione in modo da poterlo vedere.
Puoi solo controllare tutte le diverse cose che abbiamo qui a lungo predicate.
Quindi questo è stato fatto prendere un lungo indossabile e qui è solo metor non registrato e un booleano.
Ora abbiamo anche come dal consumatore per funzione prima di noi già soda dietetiche Diskos come un consumatore e tu
eri annoiato ho questo metodo accettabile.
Poi hai anche la funzione che la funzione OK userà applicata come il becchino Dunson su.
E ci sono anche alcuni metodi diversi che abbiamo già visto.
E quindi puoi controllare queste interfacce funzionali e anche le interfacce di specializzazione inseriscono le loro
motivazioni sotto il tuo codice nel framework di registrazione e puoi apprenderne le informazioni o iniziare a usarle anche.
Quindi questo è tutto.
Grazie.
Sono felice di programmare.