-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
.pl!news.nask.org.pl!news.internetia.pl!not-for-mail
From: Michoo <m...@v...pl>
Newsgroups: pl.comp.programming
Subject: Re: Jakie typowanie jest najlepsze i dlaczego statyczne?
Date: Mon, 28 Jan 2013 13:08:11 +0100
Organization: Netia S.A.
Lines: 73
Message-ID: <ke5q5e$cqc$1@mx1.internetia.pl>
References: <f...@g...com>
<ke4872$acv$1@mx1.internetia.pl>
<6...@g...com>
NNTP-Posting-Host: 83.238.197.12
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1359375342 13132 83.238.197.12 (28 Jan 2013 12:15:42 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Mon, 28 Jan 2013 12:15:42 +0000 (UTC)
In-Reply-To: <6...@g...com>
X-Tech-Contact: u...@i...pl
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:10.0.11) Gecko/20121123
Icedove/10.0.11
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.comp.programming:201844
[ ukryj nagłówki ]On 28.01.2013 08:38, M.M. wrote:
> W dniu niedziela, 27 stycznia 2013 22:55:54 UTC+1 użytkownik Przemek O napisał:
>
>> A ja mam wrażenie, że gdyby nie wynaleziono komputerów, to ilość błędów
>> oprogramowania też drastycznie by spadła, a wręcz nigdy by nie powstała...
>> MSPANC
> Ehhh
>
>>> Ale jak napisałem, to tylko wrażenie. Czy znacie publikacje
>>> analizujące zależność defektów programów od języka?
> Masę przypadkowej lektury przeczytałem na temat tego, jak to mało
> błędów popełnia się w javie. Czy to prawda?
Java też bywa błędogenna przez skopany projekt:
1. Niektóre wyjątki są checked (czyli trzeba je "gdzieś" obsłużyć) ale
inne nie. Unchecked jest np "NumberFormatException" co oznacza, że łatwo
zrobić kod, który w momencie otrzymania nieprawidłowego numerka poleci
aż do dołu.
2. Operatory i metody.
Gdy mamy dowolną mieszankę int i Integer to operatory >,<,>=,<= działają
jak trzeba, ale operatory == i != działają dla dwóch Integerów zależnie
od tego jak duża wartość jest w nich trzymana ;)
equals jest zdefiniowane w Object, więc:
String s="";Integer i=1;
if(s.equals(i)
jest całkowicie poprawną konstrukcją tożsamą z if(false)
3. Operowanie na haszach.
Większość kontenerów pracuje na bazie hashCode() używając equals w
przypadku kolizji. Trzeba trzymać te dwie metody "zsynchronizowane" albo
można uzyskać bardzo subtelne błędy.
4. Parsowanie.
Zagadka - czym się różnią:
try{
Integer i = Integer.valueOf(str);
return i;
}catch(Exception ex){
return null;
}
try{
Boolean i = Boolean.parseBoolean(str);
return i;
}catch(Exception ex){
return null;
}
4. Dalsza zabawa z equals. Kontenery używają equals, które jest z
"Object", więc można robić klasy "selektorow". Powoduje to niestety, że:
Map<String,String> map = new HashMap<String,String>();
Integer i=1;
//...
map.get(i);
Jest poprawnym składniowo sposobem pobrania nulla z kolekcji.
map.put(i,"aaa");
jest oczywiście niepoprawne z powodu niegodności typów.
Istnieje przy tym interface Comparable, ale służy właściwie tyko do
sortowania, więc 0 bezpieczeństwa typów.
etc.
--
Pozdrawiam
Michoo
Następne wpisy z tego wątku
- 28.01.13 18:45 darekm
- 29.01.13 02:59 Roman W
- 29.01.13 09:44 Maciej Sobczak
- 29.01.13 10:38 M.M.
- 29.01.13 19:41 Andrzej Jarzabek
- 29.01.13 19:42 Andrzej Jarzabek
- 30.01.13 10:12 Maciej Sobczak
- 30.01.13 19:58 Andrzej Jarzabek
- 31.01.13 00:14 M.M.
- 31.01.13 10:14 Maciej Sobczak
- 31.01.13 21:29 Marek Borowski
- 01.02.13 09:47 Maciej Sobczak
- 01.02.13 11:50 M.M.
- 01.02.13 14:17 Bastion
- 01.02.13 22:59 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- 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?
Najnowsze wątki
- 2025-03-26 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-03-26 Zasilacz 7V na szynę DIN
- 2025-03-26 Warszawa => NMS System Administrator <=
- 2025-03-26 Szambo przy wysokim poziomie wód
- 2025-03-26 światełko w tunelu?
- 2025-03-25 Katowice => Key Account Manager (ERP) <=
- 2025-03-25 Warszawa => Starszy Programista C <=
- 2025-03-25 Warszawa => Senior Product Manager <=
- 2025-03-25 Re: Ile razy sąd apelacyjny może cofać sprawę do pierwszej instancji? Aż do "właściwego" wyroku?
- 2025-03-25 Do Jacek Marcin Jaworski
- 2025-03-25 Re: Ile razy sąd apelacyjny może cofać sprawę do pierwszej instancji? Aż do "właściwego" wyroku?
- 2025-03-24 Re: Myśl prawna Bodnatury Tuskistanu ruszyła na podbój Turcji [organizacja przestępcza (opozycji)]
- 2025-03-24 Rozkaz 15-2025: O Przestrzeganiu Konwencji Ottawskiej
- 2025-03-24 Rozkaz 14-2025: O Domu Studenckim UJ Kamionka
- 2025-03-24 Rozkaz 13-2025: O Zakazie Tworzenia Oprogramowania Szpiegowskiego