2012-05-13 22 views
9

Tengo solo esto, pero mi compilador dice: Tipo de discrepancia: no se puede convertir de Lista de Arreglos a Lista ¿Cuál es el problema que alguien puede decirme? Estoy usando Elipse Java EE IDE.No coinciden los tipos: no se puede convertir de Lista de Arrays a Lista

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(); 


    } 
} 

Respuesta

21

importación incorrecta, tiene que ser java.util.List.

+0

Sí, tienes razón, gracias! –

3

necesita importar java.util.List en lugar de java.awt.List.

Es posible que también desee utilizar parámetros de tipo en lugar de tipos sin formato. Por ejemplo, si la lista se va a celebrar String valores:

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

o, antes de Java 7:

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

Actualmente tiene un argumento de tipo redundante al especificar Cadena dos veces. Como tiene la Lista , puede seguirla con ArrayList <>() – Gabe

+0

@Gabe - Eso es cierto; pero antes de Java 7, se requería la segunda 'Cadena'. Los viejos hábitos tardan en morir. :) –

2

Debido java.util.ArrayList extiende java.util.List, no java.awt.List. Que va a importar la clase equivocada:

import java.awt.List; 

vs

import java.util.List; 
5

Has importado java.awt.List, que es el control de lista en el paquete AWT, en lugar de java.util.List, que es la clase de colecciones que representa una lista de elementos. Por lo tanto, Java cree que está convirtiendo de una lista de valores de matriz lógica a un widget, lo cual no tiene ningún sentido.

Cambio de la línea de importación a

import java.util.List; 

debe solucionar este problema, como sería escribir

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

para indicar explícitamente que quiere una colección.

Dicho esto, también debería usar genéricos aquí. El uso de tipos de colecciones sin procesar ha quedado obsoleto hace tiempo. La mejor respuesta es escribir algo como

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

Espero que ayude!

1

Según lo dicho por otros es un error de importación. Dado que está utilizando Eclipse EDE si hay un error, mantenga el cursor en ese lugar y presione Ctrl + 1, le mostrará sugerencias que pueden ayudarlo a corregir los errores.

Cuestiones relacionadas