Ittajpja Annotazzjonijiet fil-Java

Ittajpja Annotazzjonijiet fil-Java

Bl-introduzzjoni ta 'Java 8, il-verżjoni introduċiet żewġ karatteristiċi ġodda msejħa annotazzjonijiet ripetuti u annotazzjonijiet tat-tip. Sa dan iż-żmien, jekk ridt tuża annotazzjonijiet f'Java, tista' tagħmel dan biss fid-dikjarazzjonijiet. Bil Java 8, issa tista 'żżid annotazzjonijiet għal kwalunkwe tip ta' użu. Kull fejn qed tuża tip (jinkludi tipi f'dikjarazzjonijiet, ġeneriċi, u casts), tista' takkumpanja dan b'annotazzjoni.

Sintassi ta' Annotazzjoni tat-Tip

Java 8 jista 'jiddikjara annotazzjonijiet tat-tip fuq kwalunkwe użu tat-tip. Eżempju wieħed huwa s-snippet hawn taħt:

@Dejta String Encrypted; Lista <@NonNull String> kordi; myGraph = ( @Grafika Immutabbli ) tmpGraph; Tista 'sempliċement tintroduċi annotazzjoni ta' tip ġdid. Il-proċess huwa simili għad-definizzjoni ta' annotazzjoni bil-mira ElementType.TYPE_PARAMETER, il-mira ElementType.TYPE_USE, jew iż-żewġ miri: @Target ( { ElementType.TYPE_PARAMETER, ElementType.TYPE_USE } ) public @interface Encrypted { }

Il-mira ElementType.TYPE_PARAMETER tfisser li tista' tikteb l-annotazzjoni fuq id-dikjarazzjoni ta' varjabbli tat-tip (eż. klassi MyClass {….}). L-Element.Type.TYPE_USE ifisser li tista' tikteb l-annotazzjoni fuq kwalunkwe tip ta' użu (jiġifieri tipi f'dikjarazzjonijiet, ġeneriċi u casts).

Tista 'tiffranka annotazzjonijiet fil-fajls tal-klassi, iżda ma taffettwax jew tinfluwenza l-eżekuzzjoni tal-programm. Bħala eżempju, tista 'tiddikjara żewġ varjabbli tal-Fajl u konnessjoni kif muri fil-kodiċi hawn taħt:

Fajl tal-fajl = ….; @Encryted File encryptedFile = …; @Open Konnessjoni Konnessjoni = …; Waqt li tkun qed tesegwixxi l-programm, ir-riżultat ikun l-istess jekk tgħaddi waħda miż-żewġ fajls għall-metodu send() tal-konnessjoni. konnessjoni.ibgħat(fajl); connection.send(encryptedFile);

 

Xi Eżempji ta' Annotazzjonijiet tat-Tip

Lista @nonNull Lista <@NonNull String> str Arrays <@NonNegative Integer> sort @Encypted File file @Open Connection connection void divideInteger (int a, int b) throws @ZeroDivisior ArithmeticException

 

Ħalli kumment

Dan is-sit juża Akismet biex inaqqas l-ispam. Tgħallem kif il-kumment tiegħek huwa pproċessat.