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 12:01:35 +0200
    Organization: http://onet.pl
    Lines: 62
    Message-ID: <j2g3i0$j3j$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>
    <j2fm3d$q1a$1@news.onet.pl> <s...@j...net>
    NNTP-Posting-Host: 77-252-124-164.ip.netia.com.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1313575297 19571 77.252.124.164 (17 Aug 2011 10:01:37 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Wed, 17 Aug 2011 10:01:37 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624
    Thunderbird/5.0
    In-Reply-To: <s...@j...net>
    Xref: news-archive.icm.edu.pl pl.comp.programming:191952
    [ ukryj nagłówki ]

    On 2011-08-17 10:29, Stachu 'Dozzie' K. wrote:
    > On 2011-08-17, Michal Kleczek<k...@p...onet.pl> wrote:
    > [...]
    >> 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).
    >
    > Przed wprowadzeniem machania rękami zwanego generykami, zapomniałeś
    > dodać. Generyki to tylko syntax sugar, *odrobinkę* ułatwiający życie
    > programiście, ale to nadal jest kontener trzymający elemety klasy
    > Object.

    Nie bardzo rozumiem dlaczego to problem z punktu widzenia statyczniej
    weryfikacji poprawnosci programu.

    > Widać to choćby po bezparametrowej metodzie ArrayList.toArray().

    To fakt - tablice w Javie zawsze byly schrzanione jesli chodzi o
    typowanie - generyki specjalnie tu nic nie zmienily.

    > I żeby nie być gołosłownym:
    > #v+
    > import java.util.ArrayList;
    >
    > class test
    > {
    > public static void main(String[] args)
    > {
    > ArrayList al = new ArrayList();
    > ArrayList<Integer> ial = (ArrayList<Integer>)al;
    >
    > al.add(new Integer(1));
    > al.add("foo");
    > al.add("bar");
    > al.add("baz");
    > al.add("nabla");
    >
    > for (int i = 0; i< ial.size(); ++i)
    > System.out.println(ial.get(i));
    > }
    > }
    > #v-
    >
    > Zgadnij, kiedy to się wywróci, o ile się wywróci? Java 6.26.
    >
    > 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()

    Ignorujesz warning - to tak jakbys stosowal <reinterpret_cast> w C++ -
    widocznie wiesz co robisz.

    > 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? Java
    nie jest tu ewenementem.

    --
    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: