2012-05-13 17 views
9

Mam tylko to, ale mój kompilator mówi: Niezgodność typu: nie można przekonwertować z ArrayList na listę . W czym problem może mi ktoś powiedzieć? Używam EEVEL Java EE IDE.Niezgodność typu: nie można przekonwertować z ArrayList na Listę

import java.awt.List; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Iterator; 


public class Main { 
    public static void main(String[] args) { 
     List list = new ArrayList(); 


    } 
} 

Odpowiedz

21

nieprawidłowe importu, to musi być java.util.List.

+0

Tak, masz rację, dziękuję! –

3

trzeba importować java.util.List zamiast java.awt.List.

Można również użyć parametrów typu zamiast typów nieprzetworzonych. Na przykład, jeśli lista zamiar trzymać String wartości:

List<String> list = new ArrayList<>(); 

lub przed Java 7:

List<String> list = new ArrayList<String>(); 
+0

Właściwie masz argument typu nadmiarowego, określając dwukrotnie łańcuch String. Ponieważ masz listę możesz śledzić ją za pomocą ArrayList <>() – Gabe

+0

@Gabe - To prawda; ale przed Java 7 wymagany był drugi 'String'. Stare zwyczaje umierają ciężko. :) –

2

Ponieważ java.util.ArrayList rozciąga java.util.List, nie java.awt.List. Importujesz niewłaściwą klasę:

import java.awt.List; 

vs.

import java.util.List; 
5

Zaimportowałeś java.awt.List, który jest kontrolką listy w pakiecie AWT, zamiast java.util.List, która jest klasą kolekcji reprezentującą listę elementów. Tak więc Java myśli, że konwertujesz z listy tablic wartości logicznych do widgetu, co nie ma żadnego sensu.

Zmiana linii przywozowego

import java.util.List; 

powinno rozwiązać ten problem, gdyż pisanie

java.util.List list = new ArrayList(); 

jednoznacznie wskazują, że chcesz kolekcję.

Powiedziawszy, powinieneś także używać generycznych tutaj. Używanie surowych typów kolekcji już dawno przestało istnieć. Najlepszą odpowiedzią jest napisanie czegoś takiego, jak

List<T> list = new ArrayList<T>(); 

Mam nadzieję, że to pomoże!

1

Jak powiedzieli inni, jest to błąd importu. Ponieważ używasz środowiska Eclipse EDE, jeśli wystąpił błąd, zatrzymaj kursor w tym miejscu i naciśnij przycisk Ctrl + 1, wyświetli on sugestie, które mogą pomóc w naprawieniu błędów.

Powiązane problemy