eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjaki wybrac jezyk? › Re: jaki wybrac jezyk?
  • Data: 2011-08-17 10:01:35
    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 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: