2010-02-28 16 views
5

Tengo el siguiente código:Error de compilación cuando una instancia de un nuevo ArrayList

import java.util.*; 
import java.io.*; 
import java.util.*; 
import java.io.*; 

public class ShufflingListAndArray 
{ 
    public static void main(String[] args) throws IOException 
    { 
    List <String> services = new ArrayList<String> (
    Arrays.asList("COMPUTER", "DATA", "PRINTER"));//here I have used List <String> services=new ArrayList<String>(Arrays.asList("COMPUTER", "DATA", "PRINTER"));// followed by next statement Satring s=Services.get(rnd.nextInt(Services.size())); 

    String s = services.get(rnd.nextInt(services.size())); 

    Collections.shuffle(list); 
    //Collections.sort(list); 
    System.out.println("List sorting :"+ list); 
    } 
} 

Y cuando compilo este programa me sale el siguiente error:

C:\>javac ShufflingListAndArray.java 
ShufflingListAndArray.java:6: '(' or '[' expected 
    List<String> services = new ArrayList<String>(
             ^
1 error 

Puede alguien ayudarme a resolver este error?

+0

¿Qué versión de Java estás usando? Los genéricos solo son compatibles a partir de Java 5 ... – netzwerg

+0

Me pregunto cómo debería compilarse esto? ¿O es esto solo un fragmento de tu código? En primer lugar, rnd no está declarado y la lista tampoco está declarada? – kukudas

Respuesta

0

Recuerdo vagamente tener que addAll en una lista en lugar de pasar una lista en ArrayLists constructor

2

Reemplazar los primeros dos líneas de su función principal con esto:

List<String> services = Arrays.asList("COMPUTER", "DATA", "PRINTER"); 

Siguiendo el ejemplo de la Arrays.asList documentation .

(También tiene doble import java.util.*;)

edición:

Teniendo en cuenta las otras respuestas y comentarios realizados en mi respuesta, el código parece ser correcta, y el problema es más probable que usted necesita compilarlo con Java 5 (o más nuevo), que es la versión cuando se introdujeron Generics. Si debe ejecutarlo en 1.4.2 o en cualquier versión que tenga, elimine las instancias de <String> y estará listo.

+1

Si alguna vez necesita modificar esa lista más tarde, arrojará una UnsupportedOperationException porque la lista que se devuelve desde Arrays.asList no se puede modificar. Para resolver este problema copie la lista en una ArrayList (o LinkedList o lo que sea) a través del "constructor de copia" como en la pregunta original o addAll como dijo mkoryak. – MatrixFrog

1

Necesita -source 1.5 o -fuente 1.6, creo. O mejor aún, use un IDE. Eclipse, NetBeans e IntelliJ son todos gratuitos.

+1

No tomaría un IDE tan pronto. Primero aprende los conceptos básicos correctamente :) – BalusC

Cuestiones relacionadas