1
00:00:01,930 --> 00:00:08,600
Salve, questo è dannoso per il ritormo ininterrotto, non aggiriamoci un po 'e diamo un'occhiata a ciò che

2
00:00:08,610 --> 00:00:10,650
riguarda la riflessione sulla stoppazione.

3
00:00:10,880 --> 00:00:19,960
E vedremo anche Veritas che in genere usa reflection permette ai programmi di avviare i raggruppamenti mentre consente

4
00:00:20,170 --> 00:00:24,550
ai programmi di introspettare codice conosciuto o sconosciuto.

5
00:00:24,820 --> 00:00:31,480
Ad esempio, ci consente di visualizzare quali metodi liberi e costruttori sono definiti in una particolare classe o in un

6
00:00:31,690 --> 00:00:35,880
oggetto senza nemmeno conoscere i loro nomi in fase di compilazione.

7
00:00:36,580 --> 00:00:40,760
È possibile ottenere tutte queste informazioni moderne direttamente al runtime stesso.

8
00:00:41,290 --> 00:00:47,480
Tutto ciò di cui hai bisogno è un nome di classe come stringa o riferimento a un oggetto o anche il nome di un'interfaccia.

9
00:00:47,590 --> 00:00:54,590
E tu puoi ottenere tutte le informazioni di Malocchio su quella particolare entità tale introspezione ci permetterebbe

10
00:00:54,590 --> 00:00:57,690
di influenzare anche quel comportamento di runtime.

11
00:00:57,730 --> 00:01:03,730
Ad esempio, se si conosce il nome della classe in fase di esecuzione, sarà possibile

12
00:01:03,820 --> 00:01:11,740
caricare la classe creare un'istanza della classe e persino richiamare determinati metodi su tale istanza, anche impostare o ottenere valori di

13
00:01:11,760 --> 00:01:13,940
libera risoluzione di tale istanza.

14
00:01:13,950 --> 00:01:19,910
Quindi fondamentalmente la riflessione ti permette di vedere che cosa ha una classe su un'interfaccia o un oggetto.

15
00:01:20,130 --> 00:01:27,630
Anche se il comportamento di runtime, facendo cose come creare istanze e invocare i loro metodi, è possibile vedere tutto

16
00:01:27,660 --> 00:01:32,350
ciò in una demo che faremo presto in un paio di conferenze.

17
00:01:34,160 --> 00:01:36,690
Non consideriamo alcuni casi di uso comune auto-riflessione.

18
00:01:37,480 --> 00:01:43,360
Idee come Eclipse usano la riflessione per offrire quella capacità di navigazione di classe.

19
00:01:43,360 --> 00:01:50,620
Ad esempio nel nostro codice sorgente non appena si digita un riferimento a un oggetto seguito da un operatore

20
00:01:50,620 --> 00:01:56,100
eclissi dog mostrerebbe automaticamente tutti i metodi che possono essere richiamati su quell'oggetto.

21
00:01:56,170 --> 00:02:01,660
Quindi è possibile una riflessione più profonda poiché una riflessione consente all'eclipse di introspettarsi.

22
00:02:01,720 --> 00:02:10,010
La classe dell'oggetto nel contesto e ci mostra tutti i metodi che possono essere invocati su quell'oggetto e altri usi

23
00:02:10,010 --> 00:02:16,040
dell'auto-riflessione è l'elaborazione e le annotazioni dell'ottico su nient'altro che i metadati Ardit il

24
00:02:16,040 --> 00:02:16,990
codice sorgente.

25
00:02:17,390 --> 00:02:20,350
Questa è la base A. H. codice sorgente.

26
00:02:20,660 --> 00:02:24,120
Ad esempio, quando scriviamo discus di G-Unit, lo sappiamo.

27
00:02:24,130 --> 00:02:27,300
I metodi hanno dato il meglio sulla notazione.

28
00:02:27,320 --> 00:02:32,700
Lasciami tirare il mio editore e possiamo guardare il disco OK.

29
00:02:32,710 --> 00:02:39,890
Ecco un caso di test unitario e qui stiamo testando un paio di metodi, quindi qui ci sono due casi di test.

30
00:02:39,910 --> 00:02:42,260
Questo è gestito e c'è un altro qui.

31
00:02:42,460 --> 00:02:47,410
Quindi la migliore ipotesi è costante, ma questo carrello delle annotazioni al meglio.

32
00:02:47,440 --> 00:02:53,200
OK, questo è il framework di test della jail unit su Usenet dove si

33
00:02:53,320 --> 00:03:01,220
usa qualcosa chiamato Amazon annotation processor che fondamentalmente processerebbe questa classe e cercherebbe metodi che non sono dichiarati

34
00:03:01,240 --> 00:03:02,980
con questa notazione.

35
00:03:02,980 --> 00:03:09,340
OK, così come abbiamo detto, cercherà queste informazioni di Malocchio in modo da ordinare le informazioni

36
00:03:09,570 --> 00:03:15,270
sul modello, quindi potrebbe anche influire sul comportamento di runtime che il vate farebbe sarebbe

37
00:03:15,270 --> 00:03:21,640
caricare questa classe chiamata Test studenti sotto la sua creazione un'istanza di esso e quindi Eirgrid

38
00:03:21,730 --> 00:03:28,680
avrebbe sfidato questi metodi che sono ripetuti con questa particolare animazione in uscita bene questi metodi metodi sull'istanza

39
00:03:28,690 --> 00:03:29,460
creata.

40
00:03:29,470 --> 00:03:31,300
OK, ecco come funzionerebbe.

41
00:03:31,300 --> 00:03:34,860
Il processore di annotazione alla fine di questo capitolo.

42
00:03:34,900 --> 00:03:41,620
Abbiamo un esercizio di codifica e l'esercizio di codifica costruiremo effettivamente un quadro di test

43
00:03:41,620 --> 00:03:44,870
unitario molto semplice, ma invece di elaborazione.

44
00:03:45,030 --> 00:03:51,760
Quindi elaboreremo questo tipo di classe ma, invece di cercare una tale animazione, cercheremo in realtà

45
00:03:51,760 --> 00:03:57,460
metodi che inizino in un certo modo con una determinata parola chiave.

46
00:03:57,520 --> 00:04:01,230
Quindi esercizio non esercitato cercheremo metodi che hanno iniziato questo.

47
00:04:01,240 --> 00:04:07,930
Chiamerebbe meglio OK, quindi cerchiamo certi schemi nel nome del metodo.

48
00:04:07,930 --> 00:04:08,940
Ecco come lo facciamo.

49
00:04:08,950 --> 00:04:10,420
Ecco come sarà diverso.

50
00:04:10,630 --> 00:04:12,530
Quindi lo vedremo quando arriveremo lì.

51
00:04:12,610 --> 00:04:18,520
Quindi questo è il processore Bishan e per la classe bronzing lo sappiamo già.

52
00:04:18,520 --> 00:04:24,320
Quindi diciamo che usiamo tutte queste idee che è ciò che il giudice ha ordinato il pacchetto di dll.

53
00:04:24,480 --> 00:04:29,780
Se colpiamo un documento qui, mostreremo tutti i metodi presenti in questa classe.

54
00:04:30,100 --> 00:04:38,760
Questa è la funzione di classe di navigazione che l'ID ci fornisce, quindi Id è il processore di annotazione, quindi questi sono strumenti

55
00:04:38,770 --> 00:04:43,840
che fanno uso della riflessione su quando stiamo costruendo questo tipo di strumenti.

56
00:04:43,840 --> 00:04:45,820
È comune usare la riflessione.

57
00:04:45,850 --> 00:04:49,440
OK, quindi questi sono i due esempi stirati.

58
00:04:49,450 --> 00:04:55,930
Torniamo alle classifiche, non così questi sono due buoni esempi.

59
00:04:55,960 --> 00:05:03,160
Ora Hibernate è un framework automatico che usa anche questo tipo di probation su Hibernate, quindi usa la reflection

60
00:05:03,160 --> 00:05:11,460
per identificare i membri di una classe che sono A. D e un uso interessante della riflessione è quando creiamo dei

61
00:05:11,460 --> 00:05:13,360
proxy dinamici su quell'acqua marina.

62
00:05:13,360 --> 00:05:14,830
Solo un semplice esempio

63
00:05:16,230 --> 00:05:19,490
Vediamo se hai la classe Student con il profilo di aggiornamento del metodo.

64
00:05:20,480 --> 00:05:26,500
Non diciamo che vogliamo misurare il tempo necessario per uscire da questo metodo, forse vogliamo anche

65
00:05:26,500 --> 00:05:34,270
fare lo stesso per molte delle nostre classi in un caso del genere che può rilasciare un'istanza o una classe studente

66
00:05:34,270 --> 00:05:42,190
in un proxy dinamico e che il proxy fornisce logica aggiuntiva per misurare il tempo di esecuzione del metodo che un client

67
00:05:42,200 --> 00:05:49,150
può richiamare lo stesso metodo del profilo di aggiornamento sul proxy dinamico sul voto del proxy, fatto in Mugdha,

68
00:05:49,150 --> 00:05:51,790
un metodo bit profile nella classe Student.

69
00:05:52,030 --> 00:05:58,430
Inoltre, misura anche il tempo necessario per eseguirli nonostante il codice che misura l'uscita e

70
00:05:58,430 --> 00:06:05,210
il tempo sia tenuto separato dal metodo di profilo aggiornato che ha la logica aziendale effettiva.

71
00:06:05,240 --> 00:06:06,640
Questo è il vantaggio chiave.

72
00:06:07,370 --> 00:06:10,140
Questo proxy dinamico sarebbe una classe molto generica.

73
00:06:10,340 --> 00:06:17,230
E così può essere usato per prop qualsiasi delle classi inferiori l'implementazione è stata piuttosto interessante.

74
00:06:17,610 --> 00:06:22,990
Includerò un collegamento a un semplice tutorial su questo argomento e probabilmente potrai verificarlo dopo

75
00:06:22,980 --> 00:06:25,030
aver terminato con refl ..

76
00:06:25,120 --> 00:06:32,480
Ma la cosa principale da notare è che il proxy dinamico è creato tramite il singhiozzo della riflessione, tutti

77
00:06:32,480 --> 00:06:38,540
comprendono che la riflessione riguarda le informazioni di Mad-Eye su classi, oggetti e interfacce.

78
00:06:38,810 --> 00:06:44,330
Ma sappiamo anche dalla lezione di classe che l'oggetto di classe è tutto incentrato su

79
00:06:44,990 --> 00:06:48,700
questa informazione di Malocchio e brevemente ne dedichiamo alcuni metodi.

80
00:06:48,740 --> 00:06:51,990
Quindi la domanda è: useremo la classe o l'oggetto qui.

81
00:06:52,260 --> 00:06:53,930
E la risposta è si.

82
00:06:54,000 --> 00:06:59,920
Quindi non è solo DBMS Glocester che fa uso di oggetti di classe, ma anche noi sviluppatori possiamo fare uso

83
00:06:59,930 --> 00:07:03,040
di oggetti di classe mentre si usa il reflection.

84
00:07:03,050 --> 00:07:08,870
In realtà questo diagramma mostra che il punto di ingresso per la riflessione è ottenere un riferimento all'oggetto classe in modo

85
00:07:09,920 --> 00:07:13,500
che la riflessione non sia possibile senza l'accesso a un oggetto classe.

86
00:07:14,360 --> 00:07:21,140
E la riflessione non è vincolata solo a questa classe chiamata classe, ma le classi da Jalandhar a Langbroek riflettono

87
00:07:21,150 --> 00:07:25,000
il ritorno di Gaige sono anche parte del rifl ..

88
00:07:25,200 --> 00:07:28,430
Ma il punto di ingresso sarebbe ancora l'oggetto di classe.

89
00:07:28,650 --> 00:07:35,160
Quindi la classe e il dottor Dharwad Il pacchetto Langer può essere troppo buono, considerato più buono

90
00:07:35,160 --> 00:07:37,620
come una reflection API nella prossima lezione.

91
00:07:37,650 --> 00:07:41,330
Vedremo come possiamo ottenere un oggetto di classe.

92
00:07:41,400 --> 00:07:44,310
Dopo l'oscurità lasceremo ancora di più.

93
00:07:44,310 --> 00:07:49,740
Vedremo anche alcune delle classi per lui Javadoc Lang Daut rispecchiano il pacchetto.

94
00:07:49,740 --> 00:07:50,760
Quindi questo è tutto.

95
00:07:50,880 --> 00:07:51,630
Grazie.

96
00:07:51,630 --> 00:07:54,480
La nostra prossima mossa esaminerà come accedere ad un oggetto di classe.
