Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,

Hasonló előadás


Az előadások a következő témára: "Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,"— Előadás másolata:

1 Annotációk a Java 5 nyelvben Kozsik Tamás

2 Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz, attribútumokhoz, konstruktorokhoz, lokális változókhoz Plusz információt hordoznak –A Java fordító számára –Speciális eszközök számára

3 Annotációk definiálása és használata Copyright { String value(); Tamás Kozsik")‏ public class Point { public double x, y; public Point(int x, int y){ this.x = x; this.y = y; }

4 Típusok Primitív típusok Referencia típusok –Osztályok Tömbök Felsorolási típusok –Interfészek Annotáció típusok

5 Annotáció típus - szintaxis Majdnem olyan, mint egy interface Speciális Megszorítások –Nem lehet generikus –A metódusok benne: nem lehetnek generikusok nem lehet paraméterük a visszatérési érték típusa nem lehet throws-klózuk –Nem lehet szülőinterfésze primitív típus String Class vagy példányosítása Felsorolási típus Annotáció típus Ezekből képzett tömb (1-dim)‏

6 Annotáció típus - szemantika Interfész Implicit módon kiterjeszti a java.lang.annotation.Annotation interfészt Lehet belőle leszármaztatni Nem lehet rekurzív a SelfRef { // fordítási hiba SelfRef value(); } Nem ütközhetnek metódusai az Object és az Annotation metódusaival (felüldefiniálás-ekviv.)‏

7 Annotációk elemei Az annotáció típus definíciójában bevezetett metódusok Nulla, egy vagy több elem –Nulla: marker –Egy: konvenció, hogy a neve „ value ” Alapértelmezett érték rendelhető hozzájuk

8 Több elem, alapértelmezett érték RequestForEnhancement { int id(); String synopsis(); String engineer() default "[unassigned]"; String date() default "[unimplemented]"; synopsis="Provide time-travel functionality" )‏ void travelThroughTime(Date dest){ … }

9 Marker annotáció Elhagyható zárójelpár Preliminary public class ApplePie { … }

10 Egy elemet tartalmazó annotáció Ha az elem neve value Vagy, ha több elem, a többinek van default Copyright { String value(); Kozsik (2006)")‏ public class Point { … }

11 Tömb típusú elem Endorsers { String[] value(); {"Children", "Unscrupulous dentists"})‏ public class Lollipop {... public class Lollipop {... }

12 Típushelyettesítő public interface Formatter {... } PrettyPrinter { Class value(); } class GorgeousFormatter implements Formatter {... public class Petunia // ford. hiba public class Begonia {... }

13 Beágyazott felsorolási típus Quality { enum Level { BAD, INDIFFERENT, GOOD } Level value(); public class Karma {... }

14 Összetett annotációk Name { String first(); String last(); } Author { Name value(); } public class Point { … }

15 Mire alkalmazható Csomagokhoz Típusokhoz (annotáció típusokhoz is)‏ Metódusokhoz Attribútumokhoz (enum konstansokhoz is)‏ Konstruktorokhoz Lokális változókhoz Meta-annotáció

16 Annotáció típusok annotálására Beépített annotáció típusok Saját magát @Target(ANNOTATION_TYPE) Target { … }

17 Predefinit annotációk A Java nyelvbe/fordítóba beépítettek –Target –Retention –Inherited –Override –SuppressWarnings –Deprecated A szabványos API-ban bevezetettek


Letölteni ppt "Annotációk a Java 5 nyelvben Kozsik Tamás. Annotációk Módosítószavak bővítése A programszöveg elemeihez rendelhetők –Csomagokhoz, típusokhoz, metódusokhoz,"

Hasonló előadás


Google Hirdetések