eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjaki wybrac jezyk?Re: jaki wybrac jezyk?
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for
    -mail
    From: Michal Kleczek <k...@p...onet.pl>
    Newsgroups: pl.comp.programming
    Subject: Re: jaki wybrac jezyk?
    Date: Wed, 17 Aug 2011 08:11:58 +0200
    Organization: http://onet.pl
    Lines: 78
    Message-ID: <j2fm3d$q1a$1@news.onet.pl>
    References: <2...@v...googlegroups.com>
    <5...@n...onet.pl>
    <a...@e...googlegroups.com>
    <op.vz9ot2qr8x7o78@notebook>
    <3...@h...googlegroups.com>
    <j2d2k9$q10$1@news.onet.pl>
    <3...@m...googlegroups.com>
    NNTP-Posting-Host: 87-205-167-193.adsl.inetia.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1313561518 26666 87.205.167.193 (17 Aug 2011 06:11:58 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Wed, 17 Aug 2011 06:11:58 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624
    Thunderbird/5.0
    In-Reply-To: <3...@m...googlegroups.com>
    Xref: news-archive.icm.edu.pl pl.comp.programming:191945
    [ ukryj nagłówki ]

    On 2011-08-16 22:27, Maciej Sobczak wrote:
    > On Aug 16, 8:27 am, Michal Kleczek<k...@p...onet.pl> wrote:
    >
    >> Dobre.
    >> Ale nieprawdziwe :)
    >
    > Sprawdziłeś?
    >
    >> Java rzuci ClassCastException na pierwszym add (fakt - w runtime).
    >
    > To ja mam zepsutą Javę (1.6.0), bo u mnie rzuca dopiero na drugim add.
    >
    >> 1. Wymaga tego specyfikacja TreeSet.add()
    >
    > Wg. dokumentacji (6) wyjątek leci "if the specified object cannot be
    > compared with the elements currently in this set ". Czyli jeśli zbiór
    > jest pusty, to ma nie lecieć.
    >
    >> 2. Zweryfikowalem zrodla
    >
    > W jakiej wersja Javy?

    1.7
    TreeMap:
    public V put(K key, V value) {
    Entry<K,V> t = root;
    if (t == null) {
    compare(key, key); // type (and possibly null) check
    ...
    }


    >
    >> ktorej put() w przypadku gdy mapa jest pusta probuje porownac klucz sam
    >> ze soba (wlasnie w celu zweryfikowania typu).
    >
    > I to ma być "statyczna kontrola typów"? Porównywanie obiektu samego ze
    > sobą w run-time?
    > Ale jaja. :-D
    >
    >> API _zawsze_ mozna spieprzyc
    >
    > To nie jest kwestia API. TreeSet<NonComparable> jest bez sensui w
    > poważnym języku można to sprawdzić *od razu*. Nawet bez dostępu do
    > implementacji klasy TreeSet.

    TreeSet<NonComparable> _nie_ jest bez sensu, bo mozna uzyc Comparatora
    zeby porownac elementy. Problem lezy w tym, ze Klasa TreeSet istniala
    przed wprowadzeniem generykow (i trzeba bylo zachowac konstruktory).

    Wyobraz sobie, ze TreeSet wyglada tak:
    public class TreeSet<T> {
    protected TreeSet() {...}
    protected TreeSet<Comparator<? super T>>() {...}

    public static <T extends Comparable> TreeSet<T> make() {...}
    public static <T> TreeSet<T> make(Comparator<? super T> comparator)
    {...}
    }

    (fakt, ze mogliby dolozyc do Javy jakas mozliwosc dodawania "type
    bounds" konstruktorom - byloby wygodniej)

    lub ew. po prostu dwie rozne klasy TreeSet jak pisalem wczesniej.

    Tyle, ze obydwie takie zmiany bylyby niekompatybilne z Java 1.4.

    > Tak, właśnie np. Ada nie potrzebuje widzieć implementacji, żeby
    > stwierdzić, że to jest bez sensu. I to jest właśnie statyczna kontrola
    > typów a nie jakieś machanie rękami w run-time.
    >

    Java tez nie potrzebuje. Pod warunkiem, ze tworca API biblioteki dobrze
    wykorzystal cechy jezyka. (Oczywiscie - Ada ma mocniejszy system typow,
    ale akurat w tym wypadku to nie ma to znaczenia).

    --
    Michal

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: