Ako vytvorit Set?

Ondra Nekola ondra na nekola.cz
Čtvrtek Leden 19 16:39:14 CET 2006


> Hi all,
> Ma classu Osoba a v nej mam field: Set<Kontakt> kontakty; mam k nemu
> napisane getter setter metody
> Chcel som napisat takyto kod:
>
> Osoba o = new Osoba();
> o.getKontakty().add(createKontakt());  // createKontakt je fcia vracajuca
> objekt typu Kontakt
>
> problem je, ze mi to vyhodi chybu, bo o.getKontakty() vracia null, takze
> otazka znie ako ho mam vytvorit?
> pokusil som sa:
> o.setKontakty(new Set<Kontakt>());
> ale to mi nechce zobrat :(

Ako nechce zobrat? Pythie Delfská by jistě věděla, ale...
Je to chyba při kompilaci, při běhu?
Aha. Set je interface. Takže při kompilaci.

Myslím, že jste si defakto odpověděl sám - jistě nechcete mít možnost
vystrčit ven kontakty tak, aby vám je mohl kdokoli nabořit. Osobně bych si
udělal finální (někdy to nejde, jak poznáte) privátní pole, v konstruktoru
jej nainicailisoval oblíbenou implementací množiny a okolí poskytl jen
příslušné delegáty - třebas addContact(Kontakt k);

A pro listování kontakty dát jenom vhodný iterátor, který klientovi
neumožní napáchat žádnou škodu.
--
   S pozdravem
       Ondrej Nekola
       ondra na nekola.cz
       http://www.nekola.cz
       ICQ# 160692888


Další informace o konferenci Konference