-
Data: 2011-08-17 12:52:08
Temat: Re: jaki wybrac jezyk?
Od: Michal Kleczek <k...@p...onet.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 2011-08-17 14:12, Stachu 'Dozzie' K. wrote:
>>>
>>> Przepraszam, ale w poważnym języku o statycznym systemie typów taka
>>> głupota zostanie wykryta na etapie kompilacji.
>>
>> Zostaje wykryta - ja dostaje warning w 1 i 2 linijce main()
>
> Wykryte są jedynie niesprawdzone operacje rzutowania. To zdecydowanie za
> mało. Jest istotna różnica między dodaniem Integera i Stringa do
> kontenera Integerów: pierwsze powinno się powieść, drugie powinno
> wylecieć w powietrze, choćby w czasie wykonania programu przy operacji
> dodania elementu.
>
W koncu nie wiem, czy chcesz miec kontrole statyczna, czy dynamiczna.
Jesli chodzi o statyczna - to jest. Kompilator nie ma mozliwosci wykryc
zlego typu argumentu dla operacji "add" jezeli wczesniej (poprzez jawne
rzutowanie) programista mowi mu, ze kontener jest okreslonego typu.
Jesli chodzi o dynamiczna - to tez jest. Tyle ze nie w tym miejscu, w
ktorym bys chcial - to fakt.
> Poza tym ostrzeżenia nie są dla mnie satysfakcjonujące ze względu na
> sposób ich prezentacji i uciszania w sunowskim kompilatorze. Albo muszę
> usunąć wszystkie (nie zawsze w ogóle mogę ze względu na inne operacje
> użyte w programie), albo dostaję kilometry ostrzeżeń, albo ignoruję
> wszystkie jak leci.
>
Mozesz uzyc @SuppressWarnings.
>>> Java jest ewenementem, bo
>>> to język o typowaniu statycznym ale dynamicznym.
>>>
>>
>> Tzn chodzi ci o to, ze informacja o typie jest dostepna w runtime?
>
> Nie. Chodzi o to, że *mimo że* informacja o typie jest dostępna w czasie
> kompilacji, to sprawdzanie typu zostaje w większości (w kontenerach)
> zrzucone na run-time.
>
Nie rozumiem. W ogolnosci po wprowadzeniu generykow nie ma potrzeby
_explicite_ sprawdzac typu w runtime (czyli nie ma potrzeby robienia
rzutowania explicite). Niczym to sie nie rozni od dowolnego innego
jezyka bez RTTI.
TreeMap (TreeSet) jest wyjatkiem, bo jej wymagania co do kluczy
(elementow) sa takie, ze albo jest dostarczony Comparator, albo typ
elementu jest podtypem Comparable. To znowu wynika z tego, ze te klasy
powstaly przed wprowadzeniem generykow.
--
Michal
Następne wpisy z tego wątku
- 17.08.11 12:59 Michal Kleczek
- 17.08.11 13:12 Stachu 'Dozzie' K.
- 17.08.11 13:18 m...@t...pl
- 17.08.11 13:29 Marcin Biegan
- 17.08.11 13:30 Michal Kleczek
- 17.08.11 13:33 Michal Kleczek
- 17.08.11 13:39 Stachu 'Dozzie' K.
- 17.08.11 13:42 Stachu 'Dozzie' K.
- 17.08.11 13:57 Paweł Kierski
- 17.08.11 14:13 Jordan Szubert
- 17.08.11 14:16 Stachu 'Dozzie' K.
- 17.08.11 14:29 m...@t...pl
- 17.08.11 14:36 Michal Kleczek
- 17.08.11 14:38 Michal Kleczek
- 17.08.11 14:45 Michal Kleczek
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-08 Warszawa => Spedytor Międzynarodowy <=
- 2025-01-08 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-08 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-08 Katowice => Key Account Manager (ERP) <=
- 2025-01-08 Warszawa => Programista Full Stack .Net <=
- 2025-01-08 Podłączenie DMA 8257 do 8085
- 2025-01-08 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-01-08 Warszawa => Solution Architect (Java background) <=
- 2025-01-08 Wrocław => Application Security Engineer <=
- 2025-01-08 Warszawa => International Freight Forwarder <=
- 2025-01-08 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-08 Lublin => Inżynier Serwisu Sprzętu Medycznego <=
- 2025-01-08 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-08 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-08 Warszawa => Spedytor Międzynarodowy <=