Samozrejme, že je to zlé, pretože keď sa pozriete na cudzí program, nikdy
neviete, čo za String tam je použitý. Nehľadiac na to, že definovať si
potomka String-u a doplniť mu tam tú metódu nie je problém a volanie sa
zmení na
new MyString("c:\data").getFiles()
čo mi nepríde príliš veľká obeť.
To už potom smrdí C-čkovým typedef (pri použití 2 knižníc v projekte máte
minimálne 3 názvy pre int - skúsenosť z praxe), alebo C-čkovými preťaženými
operátormi - nikdy neviete, čo vlstne to plus spraví.
Aby som nevyvolal flame - tieto možnosti sú naozaj mocné, ale ak potrebujete
urobiť "rýchlo" zmenu už staršieho projektu (t.j. asi v 90% času života
aplikácie) - nevyhovujú.
Rastislav "Bedo" Siekel
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Petr Fischer
> Sent: 1. novembra 2006 13:33
> To: Java
> Subject: Re: Co jde v .NET a nejde v Jave?
>
>
> Petr Synek píše v St 01. 11. 2006 v 01:20 +0100:
> > Co se tyce dokumentace, tak v .NET podle mne neni dokumentace zas o
> > moc lepsi nez v Jave (kdyz se budeme bavit zejmena o core
> J2SE knihovnach). Snad jen je v MSDN o neco vic prikladu jak
> konkretni tridu pouzit, ale myslim ze ani Java 1.5 uz se nema
> za co stydet (oproti napr. 1.3. verzi).
> > V .NETu mi ale dost chybi moznost si prohlednout zdrojaky
> knihoven frameworku. Takze opravdu nezbyva nic jineho nez se
> spolehnout pouze na dokumentaci (coz nebyva idealni) nebo na
> google (to ale zbytecne zdrzuje). V Jave lze primo nahlednout
> do zdrojaku (napr. podivat se co vlastne vraci ten zatraceny
> Boolean.getBoolean(...) ze? :-).
> >
> > Co se tyce core knihoven, tak ty mi prijdou .NET knihovny
> ponekud vic
> > intuitivni.
> > Napr. string.IsNullOrEmpty() je docela uzitecna staticka
> metoda tridy String. V Jave musime psat porad dokola "if (s
> ==null || s.length() = 0)" (i o dost podivnejsi ekvivalenty
> lze casto potkat) nebo si napsat vlastni externi utilitu
> (prip. stahnout neco hotoveho z Jakarta Commons).
> >
> > Dale napr. prace s datumem (DateTime) a casovym usekem (TimeSpan) a
> > jakym zpusobem se tyto 2 tridy dokonale doplnuji (scitani,
> odcitani, staticke helper metody na vytvareni) je ukazka jak
> ma .NET dobre propracovane nektere knihovny.
> > Kdyz se pak clovek podiva na java.util.Date a ty mraky
> deprecated constructoru a metod, tak si uvedomi, ze vlastne
> cely Date je uz dnes jen docela osklivy wrapper nad jednou
> long promennou a nic vic... Ale neni to rozhodne to co by
> clovek intuitivne od Date tridy cekal.
> > Pokud chci napriklad vytisknout cas tedy v .NETu
> "Console.WriteLine(DateTime.Now);" tak v Jave (jsem pres
> google http://www.rgagnon.com/javadetails/java-0106.html)
> zjistil ze musim pouzit minimalne tridy Calendar a
> SimpleDateFormat a provadet s tim docela slusne harakiri. Bez
> googlu, je toto prace na min. 5 minut.
> >
>
> To me pripomina jednu vec, i kdyz bych nerad mlzil. Neni v
> .NETu nahodou mozny rozsirovat existujici tridy o novy metody
> (muzete si dopsat svoji vlastni metodu do existujici String
> nebo Date tridy - tedy podobne jako treba ve Smalltalku)?
> Chapu, ze nekomu to pride jako prasarna, ale je to jen trosku
> jinej styl OO programovani.
>
> Muzete si pak do String tridy dopsat treba funkci getFiles() a pak
> staci:
>
> "c:\data".getFiles()
>
> To neni zly ne? :)
>
> pf
>
>
>
>
>