Autor Wątek: Tablica obiektów templatowych  (Przeczytany 5520 razy)

Offline Xion

  • Moderator
    • xion.log

# Styczeń 30, 2009, 18:28:32
Rzeczywiście w Javie generyki działają dość dziwnie. Jeśli koniecznie chciałbyś używać tablicy, to chyba musiałbyś posłużyć się typem bazowym nieszablonowym ArrayList:
ArrayList intList[] = new ArrayList[size];
for (int i = 0; i < size; ++i) intList[i] = new ArrayList<Integer>();
To by jednak wprowadzało konieczność rzutowania (list lub już pobieranych z nich obiektów). Dlatego lepiej jest zastosować ArrayListę ArrayList, tak jak sugeruje kamykadze.

Poza tym jeszcze uwaga do Esidara i skowronkowa, aby nie szafowali tak ochoczo linkami do Google'a i sugestiami co do poznania podstaw języka przed dokładnym przeczytaniem posta z pytaniem.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Esidar

  • Użytkownik

# Styczeń 30, 2009, 20:13:40
Poza tym jeszcze uwaga do Esidara i skowronkowa, aby nie szafowali tak ochoczo linkami do Google'a i sugestiami co do poznania podstaw języka przed dokładnym przeczytaniem posta z pytaniem.
Nie znam się na Javie, ale 2min mi zajeło wygooglowanie tego linka w którym jest taki sam problem, jest tak samo stwierdzone że nie da się tego zrobić i taka sama sugestia jak to "rozwiązać" jaką napisałeś ty i kamykadze czyli zrobić ArrayList of ArrayList.

Offline Xion

  • Moderator
    • xion.log

# Styczeń 30, 2009, 20:22:44
Poza tym jeszcze uwaga do Esidara i skowronkowa, aby nie szafowali tak ochoczo linkami do Google'a i sugestiami co do poznania podstaw języka przed dokładnym przeczytaniem posta z pytaniem.
Nie znam się na Javie, ale 2min mi zajeło wygooglowanie tego linka w którym jest taki sam problem, jest tak samo stwierdzone że nie da się tego zrobić i taka sama sugestia jak to "rozwiązać" jaką napisałeś ty i kamykadze czyli zrobić ArrayList of ArrayList.

Należało więc wkleić go od razu, zamiast podawać trywialny przykład zastosowania samej klasy ArrayList (o co przecież nie chodziło) podlinkowany pod jakże elokwentną i efektowną wypowiedź. Bo to wyraźnie świadczy o pobieżnym przejrzeniu posta Trolla i arbitralnym stwierdzeniu "Ten pan nie zna podstaw".

Offline skowronkow

  • Użytkownik
    • skowronkow devsite

# Styczeń 30, 2009, 21:03:23
Bo to wyraźnie świadczy o pobieżnym przejrzeniu posta Trolla i arbitralnym stwierdzeniu "Ten pan nie zna podstaw".

Zgadza sie przeczytałem pobieznie i fakt moj blad jednak mialem pewne podstawy tak sądzic (o czym napisalem). Poza tym rowniez bardzo szybko znalazlem odpowiedz na powyzsze i to nie dlatego ze znam jakies sztuczki w google...:)

Offline Kwisatz

  • Użytkownik

# Kwiecień 20, 2009, 21:05:02
Da się zadeklarować zwykłą tablicę objektów typu ArrayList:

ArrayList<String>[] ana ;

Błędem było umieszczenie nawiasu kwadratowego za nazwą zmiennej a nie za nazwą typu. Ale trzeba pamiętać że trzeba wywołać konstruktor ArrayList dla każdego z pól tej tablicy.
Co prawda potem nie można stworzyć
ana = new ArrayList<String>[12]; - wyrzuca blad
Ale można zadeklarować to :
ana = new ArrayList[12]; - jest ostrzeżenie o możliwości niezgodności ale powinno działać o ile sienie wrzuci innego typu ArrayList
 a potem już tylko :
ana[1] = new ArrayList<String>();

Pozdrawiam :)