Erreur de liste de tableau Java?
// ArrayList
import java.io.*;
import java.util.*;
public class ArrayList
{
public static void main (String [] args)
{
Integer obj1 = new Integer (97);
String obj2 = "Lama";
CD obj3 = new CD("BlahBlah", "Justin Bieber", 25.0, 13);
ArrayList objects = new ArrayList();
objects.add(obj1);
objects.add(obj2);
objects.add(obj3);
}
}
J'essaie de créer une liste de tableaux avec ces trois objets, pourquoi reçois-je cette erreur?
ArrayList.java:15: cannot find symbol
symbol : method add(java.lang.Integer)
location: class ArrayList
objects.add(obj1);
^
ArrayList.java:16: cannot find symbol
symbol : method add(java.lang.String)
location: class ArrayList
objects.add(obj2);
^
ArrayList.java:17: cannot find symbol
symbol : method add(CD)
location: class ArrayList
objects.add(obj3);
^
3 errors
5 answers
Parce que, votre nom de classe est ArrayList
. Changez le nom de votre classe comme,
public class ArrayListTest{
.....
}
Ou, utilisez le nom de classe complet java.util.ArrayList
public class ArrayList{
public static void main (String [] args)
{
....
java.util.ArrayList objects = new java.util.ArrayList();
...
}
Modifier votre nom de classe ArrayList
est déjà défini dans java
Voir ci-dessous
Http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html
Je vous suggère de lire quelques articles sur les conventions de noms en Java. Car ce que vous faites maintenant est trompeuse. http://java.about.com/od/javasyntax/a/nameconventions.htm
Votre nom de classe n'est pas éligible et malentendu. Vous devez utiliser des noms plus spécifiques et éviter d'utiliser des noms restreints comme des collections.
Étant donné que votre nom de classe est le même que celui de l'API Java, vous devrez utiliser namesapce complet (avec le nom pacakge) lorsque vous souhaitez fonctionner sur l'API Java
java.util.ArrayList objects
Idéalement, les classes définies par l'utilisateur ne devraient pas être nommées comme Java System/API class names
Vous ne pouvez pas ajouter l'objet à cause de la ligne:
ArrayList objects = new ArrayList();
Utilisez toujours le type générique lorsque vous utilisez plusieurs objets comme Integer
, String
......
Remplacez votre déclaration ArrayList par:
ArrayList <Object> objects = new ArrayList <Object> ();
Object peut prendre un entier et une chaîne (car les deux sont une sous-classe de la classe Object)
Encore un point ici : vous pouvez utiliser ArrayList
comme nom de classe alors vous devez déclarer votre java.util.ArrayList
avec le nom de package qualifié.....si vous utilisez d'autres alors List
comme Set
, Map
alors votre peut utiliser ArrayList
comme nom de classe sans aucune déclaration de paquet avec Set
ou Map
..... idéalement, nous ne devrions utiliser aucun mot de réserve comme nom de classe....
Merci: KP