[Javalist] Annotáció probléma
József Keresztes
xesj.hu at gmail.com
2013. Nov. 20., Sze, 13:33:17 CET
Péter, Ricsi !
Köszi a válaszokat.
Azt hiszem kezd világos lenni a dolog.
És valóban abban a metódusomban aminek osztály volt a paramétere:
private void valami(Class cls) {...}
kicserélve erre:
private void valami(Class<?> cls) {...}
minden tökéletes és nem kell cast amikor belül a cls.getAnnotation()-t
használom!
A lényeg az lehet hogy a cls paraméterem generikussá vált <?> által.
Joe
2013. november 20. 13:22 Böszörményi Péter írta, <zmblevlist at gmail.com>:
> Richard mutatott ra a dologra. Az altalad kuldott cucc telleg nem fordul
> le, mert ebben az esetben zz valtozo nem generikus, gondolom visszafele
> kompatibilitas miatt ilyenkor a fuggvenyeknel sem veszi figyelembe a
> generikus parametereket, de ezt valaki, aki nalam okosabb megmondja.
>
> Ha Class<?> zz = Object.class-t hasznalsz, akkor nem kell a cast,
> legalabbis nekem nem kellett.
>
>
> On 2013-11-20 13:02, József Keresztes wrote:
>
>> Na azt hiszem így jobban érthető. Kicsit átalakítottam a példádat:
>>
>> Override a = Object.class.getAnnotation(Override.class);
>> Class zz = Object.class;
>> Override a2 = zz.getAnnotation(Override.class); // EZ NEM FORDUL
>> LE
>>
>>
>>
>> 2013. november 20. 12:56 József Keresztes írta, <xesj.hu at gmail.com
>> <mailto:xesj.hu at gmail.com>>:
>>
>>
>> Netbeans 7.4-et használok, és ha a cast-ot kiveszem akkor a
>> következő a hibaüzenet:
>>
>> incompatible types: Annotation cannot be converted to View
>>
>>
>> 2013. november 20. 12:42 Böszörményi Péter írta,
>> <zmblevlist at gmail.com <mailto:zmblevlist at gmail.com>>:
>>
>>
>> Szerintem vagd ki azt a fat.
>> Ez nekem fordul, bar az vitathatatlan, hogy sok ertelme nincs:
>>
>> Override a = Object.class.getAnnotation(__Override.class);
>> Field f = null;
>> Override b = f.getAnnotation(Override.__class);
>>
>>
>> Milyen hibat mond a fordito, ha nincs ott a cast?
>>
>>
>> On 2013-11-20 12:28, József Keresztes wrote:
>>
>> Sziasztok !
>>
>> Valamit nagyon nem értek, persze lehet hogy a fától nem
>> látom az erdőt :)
>> Van egy annotációm, a neve View. Amikor egy osztálynál
>> vizsgálom hogy el
>> van-e látva ezzel az annotációval,
>> kell egy "számomra értelmetlen" cast, különben a kód nem
>> fordul le.
>> Ha ugyanezt egy Field-nél vizsgálom, nem kell cast-olni. Az
>> osztálynál
>> miért kell ???
>> Egyébként a dolog annotáció független, más annotációval is a
>> helyzet
>> ugyanez.
>>
>>
>> Class cls = ...;
>> Field field = cls.getField(...);
>>
>> View view = (View)cls.getAnnotation(View.__class); //???
>> mért kell cast ???
>> View view2 = field.getAnnotation(View.__class);
>>
>>
>> Dokumentáció szerint a Class osztály getAnnotation() metódusa:
>>
>> public <A extends Annotation> A getAnnotation(Class<A>
>> annotationClass)
>>
>> Dokumentáció szerint a Field osztály getAnnotation() metódusa:
>>
>> public <T extends Annotation> T getAnnotation(Class<T>
>> annotationClass)
>>
>>
>> Üdv, Joe
>>
>>
>>
>> _________________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu <mailto:Javalist at lists.
>> javaforum.hu>
>> http://lists.javaforum.hu/__mailman/listinfo/javalist
>>
>> <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>
>>
>>
>> --
>> Üdvözlettel,
>> Böszörményi Péter
>> _________________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu <mailto:Javalist at lists.javaforum.hu>
>> http://lists.javaforum.hu/__mailman/listinfo/javalist
>> <http://lists.javaforum.hu/mailman/listinfo/javalist>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>>
>
> --
> Üdvözlettel,
> Böszörményi Péter
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
>
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20131120/886020a7/attachment.html>
További információk a(z) Javalist levelezőlistáról