reference to ArrayList is ambiguous

0

Hi ho!!

Pisze sobie malenka aplikacyjke w ktorej chcialem wykorzystac wlasnie ArrayListy. Kod wyglada mniej wiecej tak:

import java.util.ArrayList;
import org.bluray.net.BDLocator;
...
public class HelloTVPlayback {
    ArrayList<BDLocator> sceneVideoLocations = new ArrayList<BDLocator>();
...
}

No i NetBeans wyswietlil mi piekny, czerwony wykrzyknik pod ktorym ukrywa sie taka oto informacja:

type java.util.ArrayList does not take parameters

reference to ArrayList is ambiguous, both method ArrayList() in <any> and method ArrayList(java.util.Collection) in <any> match

type java.util.ArrayList does not take parameters

We wlasciwosciach mam SourceLevel JDK 1.5. W javie raczkuje wiec nie wiem, co jeszcze powinienem ustawic. HELP [!!!] :>

0

Powiedz co masz w Properties->Libraries->Java Platform.

0

Nie mam czegos takiego jak Properties->Libraries->Java Platform. Jak juz napisalem, mam ustawione Java Sources na 1.5. Oprocz tamtej podpowiedzi NetBeansa mam podczas kompilacji taki blad:
type java.util.ArrayList does not take parameters

0

Po pierwsze:

type java.util.ArrayList does not take parameters

"Typ Arraylist (z biblioteki standardowej) nie przyjmuje parametrów".
Wygląda na to, że masz starą wersję biblioteki w której zawarta jest klasa ArrayList. Taką, która nie obsługuje typów uogólnionych.
Po drugie kompilator wyraźnie napisał Ci, że wywołanie ArrayList() nie jest jednoznaczne i pasuje zarówno konstruktora java.util.Collection.ArrayList() oraz ArrayList().
Może to być jednak konsekwencja pierwszego problemu lub dla kompilatora wygląda tak jakbyś sam napisał metodę jakąś metodę ArrayList() w źródle w którym znajduje się błąd.
Przypadkowe zdefiniowanie klasy lub metody ArrayList we własnym kodzie zdarza się. Często dzieje się tak przy kompletnym bajzlu w nawiasach klamrowych, gdzie niepoprawne użycie kompilator identyfikuje jako napisaną definicję.
Ewentualnie masz posypaną konfigurację bibliotek w taki sposób, że masz podłączone dwie biblioteki standardowe - jedną z jednej wersji javy, a inną z wczesniejszej.
Dlatego kolega pytał się o konfigurację.
Może masz asekuracyjnie wpakowane jakieś niepotrzebne importy?
Przeszukaj swój kod na wystąpienie słowa ArrayList, potem kod importów, a jeżeli to nic nie da, to bibliotek jakie uwzględnia kompilator.

0

Wydaje sie, ze znalazlem rozwiazanie problemu. Mimo, ze platforma javy jaka widnieje w projekcie to 1.6 (nie 1.5 jak wczesniej pisalem - pomylka), to aplikacje mobilne korzystaja czesciowo z podzbioru javy 1.3 i akurat kolekcje pochodza z tego podzbioru. Stad prawdopodobnie ta niejednoznacznosc. CHyba, ze ktos ma jeszcze inny pomysl ;) chetnie poczytam.

0

Ha, jeśli programujesz w JME, przy użyciu MIDP, to w ogóle nie masz do dyspozycji klasy ArrayList. Z kolekcji są tam klasy Vector i Stack, czyli kontenery starego typu.

0

@kamykadze - probuje sie nauczyc javy przy uzyciu wlasnie jme, bylbym wdzieczny jakbys mi zaprezentowal jakies linki, stricte do jme, bo widze, ze majac przed nosem javacore2 to coraz czesciej beda mi sie przytrafiac takie "kwiatki".

0

Ojej, aleś leniwy ;)

To najważniejsze - API MIDP 2.0:

http://java.sun.com/javame/reference/apis/jsr118/

Dla pakietów opcjonalnych, jeśli ich używasz, musisz znaleźć sobie analogiczną stronkę, na której będą widniały dostępne klasy.

Oprócz tego polecam google i wyszukiwanie tutoriali do JME.

I nie wiem, czy Twoje podejście jest słuszne, moim skromnym zdaniem najpierw warto znać chociaż średnio Javę, a potem dopiero się brać za JME...

1 użytkowników online, w tym zalogowanych: 0, gości: 1