-
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
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "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)
Najnowsze wątki
- 2025-05-09 Kto miał rację ?
- 2025-05-09 Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- 2025-05-08 Z jakiego paragrafu podlega ochronie (resortowa) flaga UE w RP3? Bo to nie flaga Obcego PAŃSTWA [KK-137.2]
- 2025-05-08 Usługi, rozliczanie płatności z karty i blika
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie
- 2025-05-07 Polscy czołgiści najlepsi w międzynarodowych zawodach na Łotwie!!!
- 2025-05-07 Znaki wewnętrzne
- 2025-05-07 Czujnik nacisku
- 2025-05-07 Wielki smog w Watykanie Nadal palą węglem w piecach
- 2025-05-07 Kraków => Business Development Manager - Network and Network Security
- 2025-05-07 Białystok => Team Lead Data Engineer (obszar Snowflake) <=