Dynamisk generics
Tja, jeg kunne ikke lige finde på et smart navn til titlen :)Jeg har gået og tænkt lidt over følgende.
Hvis man har en vector people<Person> (indeholdende Person-objecter). Person er generisk så man burde initialicere Person med Person<en eller anden type>.
Så prøver jeg lige at lave et gennemløb af vectoren:
for(Person p : people){
p.getName();
}
Nu burde man jo få en warning, fordi Person ikke er initialiceret korrekt. Selvom man ikke bruger det generiske i Person. Burde man her have initialiceret people<Person> således i stedet? People<Person<some_type>>? Men hvad så hvis det er forskellige typer mine person objecter skal initialiceres med?
Jeg prøver at gå et skridt videre.
for(Person p : people){
?? job = p.getJob(); //antag at getJob returnerer et job af generisk type
}
Hvad er så den korrekte måde at klare ovenstående på?
Og nu et skridt videre, for at komme til mit egentlige spørgsmål. Så lad os sige, at jeg nu skal have beskrevet jobbet i en JobDescriptor<T> (begynder det at blive et søgt eksempel? ;) )
JobDescriptor<bestemt_type> jd = new JobDescriptor<bestemt_type>();
Denne bestemte type skal jo så naturligvis være samme type, som getJob i Person returnerer. Jeg har været inde på lidt reflection, men jeg kan simpelthen ikke få ind i min knold, hvordan jeg dynamisk skal komme frem til "bestemt_type" (deraf titlen).
Det var en masse spørgsmål uden ret mange spørgsmålstegn :-) Håber der er nogen der forstår min undren, og kan komme med nogle lækre svar *s*.
På forhånd tak!
