1
00:00:02,160 --> 00:00:04,100
Ciao, eccolo.

2
00:00:04,140 --> 00:00:05,030
E bentornato.

3
00:00:05,250 --> 00:00:10,390
Continuiamo la nostra discussione sulle interfacce delle funzioni standard nella lezione precedente.

4
00:00:10,530 --> 00:00:14,680
Abbiamo esaminato le interfacce di funzione standard che predicano sulla funzione.

5
00:00:14,710 --> 00:00:20,700
E non parliamo di chi è la funzione più onorata di questo consumatore e fornitore su queste quattro interfacce di

6
00:00:20,700 --> 00:00:26,640
funzione che danneggiano le interfacce di console standard di base all'interno del pacchetto di funzioni Jawa non si

7
00:00:26,640 --> 00:00:27,320
chiama esso.

8
00:00:27,470 --> 00:00:28,180
OK.

9
00:00:28,320 --> 00:00:35,100
Quindi il consumatore come suggerisce il nome è usato per consumare qualcosa ha un singolo metodo chiamato accetta che

10
00:00:35,310 --> 00:00:39,810
prende un barometro e all'interno del corpo si consuma semplicemente il parametro.

11
00:00:39,840 --> 00:00:46,650
OK facciamo qualcosa con l'argomento passato e la metrica restituisce un rifornimento bianco in quanto il nome implica

12
00:00:46,740 --> 00:00:47,790
fornire qualcosa.

13
00:00:47,930 --> 00:00:48,230
OK.

14
00:00:48,240 --> 00:00:50,270
E ha un unico metodo chiamato get.

15
00:00:50,520 --> 00:00:53,730
E non ha alcun parametro ma fa qualcosa.

16
00:00:53,920 --> 00:00:54,440
OK.

17
00:00:54,570 --> 00:00:58,860
Un architetto dipende dall'argomento tipo che passiamo con il fornitore.

18
00:00:59,190 --> 00:01:04,140
Quindi andiamo avanti e guardiamo le due nuove interfacce di funzione e la prima che guarderemo

19
00:01:04,140 --> 00:01:07,370
è quella dei consumatori e dopo guardiamo al fornitore.

20
00:01:07,650 --> 00:01:10,730
Quindi ecco la citazione dalla demo precedente.

21
00:01:11,040 --> 00:01:13,100
Quindi qui abbiamo il bello.

22
00:01:13,260 --> 00:01:19,260
E se il documento supera il predicato, applichiamo una serie di trasformazioni di trasformazione usando

23
00:01:19,290 --> 00:01:20,860
la funzione qui.

24
00:01:21,030 --> 00:01:22,560
E stiamo stampando il documento.

25
00:01:22,740 --> 00:01:29,070
Quindi tutti i quattro documenti stanno passando tutti il predicato e qui stiamo stampando i nomi.

26
00:01:29,100 --> 00:01:33,550
Ora quello che possiamo fare è invece di stamparlo in questo modo, possiamo usare il consumatore.

27
00:01:33,560 --> 00:01:39,400
Ora, per quanto riguarda ciò che faremo, aggiungeremo questi documenti a un idealista.

28
00:01:39,420 --> 00:01:45,420
Quindi, come abbiamo dichiarato un nuovo elenco qui chiamato Target document e stiamo andando ad aggiungere questi documenti in

29
00:01:45,750 --> 00:01:47,380
questo documento di destinazione.

30
00:01:47,430 --> 00:01:53,430
Ari idlest OK perché sono i documenti di destinazione dei quattro documenti che abbiamo documenti Kutaragi che hanno

31
00:01:53,670 --> 00:01:55,500
aiutato a passare il predicato.

32
00:01:55,500 --> 00:01:58,910
Quindi vengono aggiunti qui ora i documenti targer.

33
00:01:58,920 --> 00:02:07,330
Quindi questo è un idealista e su un idealista possiamo invocare ogni metodo ora per ogni metodo è ereditato.

34
00:02:07,370 --> 00:02:12,500
Potrebbe avere e sappiamo che l'elenco deve affrontare la collezione esistente di trofei e interfaccia di

35
00:02:12,570 --> 00:02:14,210
raccolta in estensioni fatte.

36
00:02:14,230 --> 00:02:18,280
Aveva un'interfaccia non rilevabile dell'interfaccia che definisce ogni metodo.

37
00:02:18,570 --> 00:02:24,720
E se ricordate, ne abbiamo discusso ogni singolo metodo nella lezione di iteratore nel

38
00:02:24,720 --> 00:02:31,790
capitolo del libro delle collezioni, in cui ogni metodo prende effettivamente un consumatore come input e acqua.

39
00:02:31,840 --> 00:02:35,970
Invoca il consumatore su ciascuno degli elementi nell'elenco.

40
00:02:35,970 --> 00:02:40,430
Questo è ciò che fa e questo è ciò che faremo arricchiremo ogni metodo.

41
00:02:40,560 --> 00:02:45,710
E stiamo per passare una stampante e attaccare uomini qui usando un lambda e che stamperebbe i documenti

42
00:02:45,720 --> 00:02:49,590
in modo che non abbiamo bisogno di scorrere i documenti in questo modo.

43
00:02:49,660 --> 00:02:52,530
Il metodo Realtek quello che ho fatto.

44
00:02:52,530 --> 00:02:58,390
Quindi andiamo avanti e copiamo questo.

45
00:02:58,460 --> 00:03:03,180
Qui è possibile vedere che ci vuole il consumatore che chiamiamo azione di

46
00:03:03,200 --> 00:03:11,440
design, il che significa che questa asta sarà sotto forma di ciascuno degli elementi e la lista di Basso è piena di bolle qui.

47
00:03:11,540 --> 00:03:16,650
Quindi il documento potrebbe andare oltre il documento.

48
00:03:16,950 --> 00:03:23,020
Quindi non hai bisogno di un trimestrale perché è solo una singola affermazione sul fatto che noi

49
00:03:23,020 --> 00:03:26,020
abbiamo come un'espressione qui il Mirando noi.

50
00:03:26,160 --> 00:03:28,000
Quindi come puoi vedere abbiamo il CMO.

51
00:03:28,290 --> 00:03:30,020
Quindi questo è tutto ciò che c'è da fare al consumatore.

52
00:03:30,020 --> 00:03:35,610
Quindi il consumatore ha un mercato unico chiamato OK accettabile e accetto la logica che viene

53
00:03:35,610 --> 00:03:36,600
fornita qui.

54
00:03:36,600 --> 00:03:37,650
Quindi è così.

55
00:03:37,650 --> 00:03:41,100
Ora per il fornitore diamo un'occhiata a un esempio molto interessante.

56
00:03:41,130 --> 00:03:43,080
Quindi tutti i documenti.

57
00:03:43,290 --> 00:03:48,700
Vediamo se uno qualsiasi dei documenti ha una lunghezza maggiore di 80 caratteri.

58
00:03:48,780 --> 00:03:50,450
Quindi dobbiamo fare un'eccezione.

59
00:03:50,460 --> 00:03:50,920
OK.

60
00:03:51,120 --> 00:03:54,360
Quindi dobbiamo amare questo messaggio.

61
00:03:54,410 --> 00:03:56,650
Dobbiamo stampare quel messaggio sulla console.

62
00:03:56,700 --> 00:03:58,640
Quindi è quello che volevamo sentire.

63
00:03:58,680 --> 00:04:04,640
Quindi tutti questi documenti il secondo documento ha effettivamente una dimensione maggiore di 80.

64
00:04:04,680 --> 00:04:08,100
Quindi andiamo avanti e

65
00:04:17,710 --> 00:04:36,960
implementiamo questo qui e dì che Doc o Glend maggiori di 80 generano un'eccezione sul messaggio nel documento sovradimensionato, ora è buio,

66
00:04:42,450 --> 00:04:45,430
basta stampare.

67
00:04:45,650 --> 00:04:50,510
Quindi c'è un metodo di stampa che ho scritto a lungo sul metodo di stampa è qui.

68
00:04:50,680 --> 00:04:53,160
OK, è un metodo statico nella classe.

69
00:04:53,270 --> 00:05:00,220
Quindi la matematica è un giocatore come input e noi siamo semplicemente come un fornitore disponibile e stiamo invocando il

70
00:05:00,230 --> 00:05:02,650
metodo get e lo stiamo stampando.

71
00:05:02,900 --> 00:05:08,180
Ma quello che stiamo facendo qui è che vogliamo stampare questo messaggio solo quando questa bandiera booleana che è un Faqir

72
00:05:08,180 --> 00:05:09,840
booleano qui chiama la nostra bandiera.

73
00:05:09,970 --> 00:05:11,900
Se è vero solo allora vogliamo stamparlo.

74
00:05:11,930 --> 00:05:14,070
Altrimenti non lo vogliamo stampare.

75
00:05:14,270 --> 00:05:18,080
OK, quindi questa stampa è controllata dalla clag.

76
00:05:18,080 --> 00:05:22,170
Passiamo ora a Pasto la variabile qui il lambda qui.

77
00:05:22,370 --> 00:05:28,260
Quindi la questione non prende alcun parametro quindi è una parentesi vuota.

78
00:05:28,340 --> 00:05:31,790
E quello che vogliamo stampare è il messaggio.

79
00:05:31,790 --> 00:05:34,550
Quindi diciamo di ricevere un messaggio qui.

80
00:05:34,550 --> 00:05:39,260
E aggiungiamo anche qualcosa presto qui.

81
00:05:40,800 --> 00:05:42,330
Sotto il dockage.

82
00:05:42,670 --> 00:05:43,310
OK.

83
00:05:43,560 --> 00:05:51,210
Quindi qui stiamo effettivamente catturando quelli che lambda sta catturando la variabile doc e va a scuola.

84
00:05:51,390 --> 00:05:51,800
OK.

85
00:05:51,840 --> 00:05:53,040
Ecco come stiamo catturando.

86
00:05:53,040 --> 00:05:55,120
E abbiamo discusso di catturare prima.

87
00:05:55,410 --> 00:05:57,440
Quindi è quello che è.

88
00:05:57,510 --> 00:06:02,110
Adesso fammi solo aprire questo caso.

89
00:06:02,140 --> 00:06:06,010
Quindi uno dei documenti è di grandi dimensioni e questo è ciò che stiamo vedendo ora.

90
00:06:06,040 --> 00:06:12,800
La cosa attuale è che se trasformo questo in difetti non stamperà ovviamente, ma ciò che accadrà

91
00:06:12,800 --> 00:06:14,030
è questo.

92
00:06:14,090 --> 00:06:19,270
Quindi questa concatenazione qui succederebbe solo se l'ottenere non funziona.

93
00:06:19,310 --> 00:06:25,430
Quindi se il Flaccus per questa stampa non verrà richiamata la dichiarazione di Alan, questo non verrà

94
00:06:25,970 --> 00:06:28,650
stampato, ma anche questa concatenazione non avviene.

95
00:06:28,670 --> 00:06:33,210
OK, questa è la bellezza di questo approccio di questo idioma.

96
00:06:33,370 --> 00:06:35,270
È un'esecuzione differita senza card.

97
00:06:35,270 --> 00:06:39,460
Questo sta succedendo perché qui abbiamo il fornitore come parametro.

98
00:06:39,470 --> 00:06:39,960
OK.

99
00:06:40,070 --> 00:06:47,330
Quindi solo nell'istanza in cui get non funziona questa concatenazione di queste cose avviene ora invece che

100
00:06:47,350 --> 00:06:48,680
un fornitore.

101
00:06:48,710 --> 00:06:55,610
Se questa fosse una stringa qui e se stessimo passando solo la stringa solo alla casella di concatenazione.

102
00:06:55,930 --> 00:06:56,180
OK.

103
00:06:56,180 --> 00:06:59,480
E in questo caso la concatenazione avviene nel modo giusto.

104
00:06:59,810 --> 00:07:05,900
Quindi, anche se hai l'ipotesi, si ferma qui se lo stai stampando, ma la concatenazione potrebbe accadere.

105
00:07:06,110 --> 00:07:08,650
Quindi ovviamente questo sarà lento.

106
00:07:08,710 --> 00:07:14,720
E se questo messaggio se questo particolare metodo di stampa lo otterrà milioni di

107
00:07:14,720 --> 00:07:16,080
volte, sarà costoso.

108
00:07:16,370 --> 00:07:19,280
OK, ecco come si evita.

109
00:07:19,340 --> 00:07:23,850
Quindi questo è un ottimo linguaggio ed è già stato adottato nell'API di luglio.

110
00:07:23,960 --> 00:07:29,580
Quindi è nell'API Java c'è qualcosa chiamato come un framework di registrazione e la Gelada per riprodurre il pacchetto

111
00:07:29,590 --> 00:07:31,970
di registrazione del medico e progetti professionali.

112
00:07:31,970 --> 00:07:36,700
Utilizzeresti una struttura di registrazione in una sorta di stampa usando una stampa di Alan.

113
00:07:36,800 --> 00:07:38,460
OK, è quello che faresti.

114
00:07:38,500 --> 00:07:44,870
E molto Djala ha un proprio framework di registrazione, ma ci sono anche altri buoni libri di terze parti su

115
00:07:44,870 --> 00:07:48,160
uno di questi è un blocco che Shoji può funzionare.

116
00:07:48,220 --> 00:07:52,280
Quindi la registrazione può funzionare, devi anche conoscere la registrazione.

117
00:07:52,510 --> 00:07:57,770
E ovviamente se stai lavorando per un progetto in un ambiente professionale, utilizzerai un framework di

118
00:07:57,780 --> 00:07:58,330
registrazione.

119
00:07:58,490 --> 00:08:03,890
Quindi hanno già adottato qualcosa di simile e stanno usando un fornitore e lo usano in questo

120
00:08:03,890 --> 00:08:04,510
modo.

121
00:08:04,520 --> 00:08:07,880
Quindi andiamo avanti e osserviamo che il registro Creole funziona solo per vostra informazione.

122
00:08:07,910 --> 00:08:14,390
Ma prima di farlo guardiamo anche all'API per le interfacce di funzione standard OK eccolo qui.

123
00:08:14,540 --> 00:08:20,600
Quindi questa è un'API per la rivista online e stiamo esaminando tutti questi pacchetti qui in laboratorio.

124
00:08:20,630 --> 00:08:24,290
Quindi queste sono le interfacce da Java Adachi alla nostra coscienza.

125
00:08:24,290 --> 00:08:26,360
Quindi queste sono le interfacce standard.

126
00:08:26,470 --> 00:08:31,160
So che puoi vedere la funzione qui.

127
00:08:31,400 --> 00:08:36,830
Quindi è possibile vedere i fornitori di dati attendibili che potrebbero essere anche lì Un-Dead è la

128
00:08:36,940 --> 00:08:40,010
versione per utente per utente per funzione di predicato.

129
00:08:40,010 --> 00:08:45,560
E queste sono cose piuttosto diverse qui è l'interfaccia fornitore e il fornitore ha solo un

130
00:08:45,560 --> 00:08:47,210
singolo metodo chiamato Get.

131
00:08:47,580 --> 00:08:48,180
OK.

132
00:08:48,230 --> 00:08:53,320
Ora qui che è in questa API è possibile utilizzare anche Dustin cardless.

133
00:08:53,600 --> 00:09:01,040
E se fai clic su Usa qui, ti mostrerà tutti i punti dell'API Java in cui viene utilizzata

134
00:09:01,040 --> 00:09:03,010
questa interfaccia di Uplay.

135
00:09:03,090 --> 00:09:08,640
Quindi l'interfaccia di caricamento viene utilizzata in tutti questi diversi pacchetti nel caso in cui si possa vedere che

136
00:09:08,690 --> 00:09:10,720
sono pacchetti diversi che non mentono.

137
00:09:10,750 --> 00:09:15,720
Modulo Cosa dici a conquistatore e logging lo vedremo anche noi.

138
00:09:16,680 --> 00:09:19,640
E gli stream API qui per il nostro articolo sono estremi.

139
00:09:19,680 --> 00:09:22,030
Quindi questi sono i diversi luoghi in cui viene utilizzato.

140
00:09:22,080 --> 00:09:28,530
E se scorri ulteriormente puoi vedere dove esattamente quel fornitore è usato all'interno di quei pacchetti.

141
00:09:28,540 --> 00:09:36,010
OK, per esempio nel lavoro, cosa stai facendo la registrazione del dottore qui.

142
00:09:36,080 --> 00:09:41,610
Quindi viene utilizzato in tutti questi metodi negli Stati Uniti nel framework di registrazione.

143
00:09:41,720 --> 00:09:42,850
OK.

144
00:09:43,010 --> 00:09:50,580
Quindi c'è così dentro il quadro più ampio che esiste una classe chiamata logger e fornitura che viene utilizzata nel

145
00:09:51,060 --> 00:09:54,900
framework di registrazione in Jemadar per sradicare la registrazione.

146
00:09:54,900 --> 00:10:01,040
Quindi ecco la classe Lagat e questo logger più, ad esempio, sta usando l'offerta qui.

147
00:10:01,200 --> 00:10:07,440
Quindi questo è il metodo con cui lavoreresti per registrare il messaggio ma c'è anche un log di quarto

148
00:10:07,530 --> 00:10:08,760
di Medtner sovraccarico.

149
00:10:08,880 --> 00:10:10,300
Qui è log.

150
00:10:10,410 --> 00:10:14,430
Quindi accetta anche un livello e accetta anche un messaggio.

151
00:10:14,430 --> 00:10:15,880
Quindi non ciò che è di livello.

152
00:10:15,960 --> 00:10:18,700
Quindi, livello, qui lascia che apra questo.

153
00:10:18,720 --> 00:10:21,310
Quindi il livello è qui a questo livello.

154
00:10:21,360 --> 00:10:23,490
È anche il record o la registrazione di Angella.

155
00:10:23,520 --> 00:10:26,780
Quindi ci sono diversi livelli che puoi impostare.

156
00:10:26,850 --> 00:10:31,600
Quindi stai registrando il lavoro con la gru, puoi impostare i livelli di registrazione in modo corretto.

157
00:10:31,800 --> 00:10:32,060
OK.

158
00:10:32,070 --> 00:10:40,060
E una volta che lo fai e ogni volta che vuoi registrare un messaggio sei in uno di questi metodi.

159
00:10:40,080 --> 00:10:47,760
Ok registra questo metodo o il registro del problema del fornitore e puoi passare il livello di registrazione appropriato insieme

160
00:10:47,760 --> 00:10:48,690
al messaggio.

161
00:10:48,840 --> 00:10:56,980
OK ora qui dopo che il livello di registrazione è stato impostato su Fine e se si sta lavorando, il metodo di registrazione

162
00:10:56,990 --> 00:11:01,220
ottiene Alexis Servier, quindi stamperà il messaggio OK, registrerà il messaggio.

163
00:11:01,500 --> 00:11:06,270
Ma se passi un livello di registrazione di Sinar, allora non è bloccato.

164
00:11:06,450 --> 00:11:12,220
Quindi qualsiasi cosa al di sopra di questo, in modo che il logging ci metta alla ricerca del livello di registrazione.

165
00:11:12,240 --> 00:11:14,200
Partecipare all'invocazione della questione del registro.

166
00:11:14,220 --> 00:11:20,790
Se si passa uno o più log globali che sono maggiori o uguali a whine, questo porterà il messaggio.

167
00:11:20,820 --> 00:11:26,970
Altrimenti non porterà i messaggi di registrazione degli ID dei messaggi che possono essere stampati sulla console o

168
00:11:26,970 --> 00:11:31,460
possono anche essere stampati su alcuni file e tutto ciò può essere impostato.

169
00:11:31,470 --> 00:11:37,080
In genere, sei stato collegato ad una multa e genererai tali file ogni giorno e avranno

170
00:11:37,080 --> 00:11:41,370
anche un timestamp nel nome in modo che possa essere fatto signore.

171
00:11:41,460 --> 00:11:47,430
Quindi questi livelli di log sono proprio come la bandiera booleana che abbiamo visto nel nostro esempio nella nostra

172
00:11:47,430 --> 00:11:53,000
demo quindi è proprio come Doc e usano anche questi idiomi come la stringa sul player.

173
00:11:53,010 --> 00:11:57,850
Quindi in genere vorresti usare un fornitore e farlo in questo modo.

174
00:11:57,880 --> 00:11:59,860
Quindi la lenticchia d'acqua sarebbe molto più efficiente.

175
00:12:00,060 --> 00:12:04,050
Va bene così se succede qualche concatenazione che potrebbe essere utile.

176
00:12:04,230 --> 00:12:11,280
E se il livello non è se suo se sarà inferiore al livello che è stato inizialmente specificato,

177
00:12:11,500 --> 00:12:15,900
allora il metodo non sarà nel libro sulla concatenazione non accadrà.

178
00:12:16,400 --> 00:12:17,340
Questo è quello.

179
00:12:17,400 --> 00:12:19,440
Quindi l'Adium viene chiamato qui.

180
00:12:19,560 --> 00:12:21,370
Quindi torniamo a questa interfaccia.

181
00:12:21,410 --> 00:12:24,020
E come puoi vedere queste sono tutte le interfacce standard.

182
00:12:24,030 --> 00:12:30,360
Ora, un'ultima cosa che voglio dirti è che ci sono anche queste interfacce di funzioni che cercano di

183
00:12:30,690 --> 00:12:32,690
classificare le primitive specifiche qui.

184
00:12:32,690 --> 00:12:36,390
Quello è uno chiamato in funzione incredibile del consumatore.

185
00:12:36,420 --> 00:12:42,100
Quindi lascia che ti mostri questa intricata doppia funzione in modo che la funzione che conosciamo faccia la trasformazione.

186
00:12:42,110 --> 00:12:46,660
Applica la trasformazione su alcuni input e alcuni output.

187
00:12:46,850 --> 00:12:47,660
OK, dai.

188
00:12:47,660 --> 00:12:53,330
Sei sicuro che se ricordi, ma qui ci vuole perché dice che int raddoppiare.

189
00:12:53,330 --> 00:12:57,020
Quindi fondamentalmente c'è una conversione da Int un po 'di doppio.

190
00:12:57,020 --> 00:13:01,630
Quindi si applica il nome del metodo Asdrubal si impegna e sotto considerevole.

191
00:13:01,640 --> 00:13:02,870
Ora questo è necessario.

192
00:13:02,970 --> 00:13:04,390
Tu o vuoi usarlo.

193
00:13:04,430 --> 00:13:08,930
Se stai lavorando con le primitive, ma se usi le primitive

194
00:13:08,930 --> 00:13:15,950
e se utilizzerai la funzione function o l'interfaccia dell'interfaccia, la boxe avverrà o la boxe entrerà in

195
00:13:15,950 --> 00:13:19,430
gioco e sappiamo che è molto inefficiente.

196
00:13:19,430 --> 00:13:25,370
Quindi ogni volta che si tratta di grandi primitive, si vorrebbe vederlo trasformarlo in

197
00:13:25,490 --> 00:13:28,630
specializzazioni all'interno delle interfacce funzionali standard.

198
00:13:28,640 --> 00:13:30,410
OK, questo è quello che abbiamo.

199
00:13:30,630 --> 00:13:32,630
Quindi dai un'occhiata a questo.

200
00:13:32,630 --> 00:13:33,600
Ci sono molto semplici.

201
00:13:33,620 --> 00:13:41,390
Quindi sai come lavorare con le interfacce del tribunale ed è solo la specializzazione in modo da poterlo vedere.

202
00:13:41,480 --> 00:13:45,220
Puoi solo controllare tutte le diverse cose che abbiamo qui a lungo predicate.

203
00:13:45,440 --> 00:13:53,220
Quindi questo è stato fatto prendere un lungo indossabile e qui è solo metor non registrato e un booleano.

204
00:13:53,270 --> 00:14:00,940
Ora abbiamo anche come dal consumatore per funzione prima di noi già soda dietetiche Diskos come un consumatore e tu

205
00:14:00,940 --> 00:14:03,290
eri annoiato ho questo metodo accettabile.

206
00:14:03,370 --> 00:14:13,210
Poi hai anche la funzione che la funzione OK userà applicata come il becchino Dunson su.

207
00:14:13,270 --> 00:14:15,740
E ci sono anche alcuni metodi diversi che abbiamo già visto.

208
00:14:15,770 --> 00:14:21,460
E quindi puoi controllare queste interfacce funzionali e anche le interfacce di specializzazione inseriscono le loro

209
00:14:21,890 --> 00:14:28,350
motivazioni sotto il tuo codice nel framework di registrazione e puoi apprenderne le informazioni o iniziare a usarle anche.

210
00:14:28,730 --> 00:14:30,370
Quindi questo è tutto.

211
00:14:30,380 --> 00:14:31,160
Grazie.

212
00:14:31,250 --> 00:14:32,560
Sono felice di programmare.
