Comment puis-je l'ajouter à une liste de tableaux à l'intérieur d'une méthode statique?

Je suis en train d'apprendre les cordes avec Java et j'ai frappé un hic avec ArrayLists. L'essentiel de mon programme est de prendre certains paramètres d'entrée utilisateur, créer une classe Foo avec ces paramètres, puis l'ajouter à une liste de tableaux. Le problème est, il se plaint que je ne peut pas référence à un non-type statique à partir d'une méthode statique. Les seuls exemples que je peux trouver des transactions en ligne avec l'ajout de constantes ("Chat", "5.0", etc) à arraylists qui n'a pas vraiment m'aider.

J'ai mis l'essentiel de mon code ci-dessous. J'ai déplacé la liste de tableaux hors de sa propre classe de la Barre et a ajouté une méthode add qui ne arraylist.ajouter(foo), si seulement comme un coup de dés pour le faire fonctionner (il n'est pas). J'ai omis la boucle, mais elle boucle un certain nombre de fois après les définitions, de sorte que la liste de tableaux est renseigné.

public class MainClass{

public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int a, b;

a = scanner.nextint();
b = scanner.nextint();

Foo foo = new Foo(a, b);
Bar.add(foo); //Complains here
}
}

Edit: Voici la Barre explicitement

import java.util.ArrayList;
public class Bar{
private ArrayList list = new ArrayList();

public void add(Foo foo){
    list.add(foo);
}
}

Si cela peut aider, l'objet foo n'est pas modifiée après la création.

Comment puis-je contourner ce problème? Merci d'avance pour toute aide.

  • pourquoi ne pas vous montrer TOUT le code qui ne fonctionne pas
  • ouais, ton résumé est manquant une déclaration de Bar, et/ou de l'erreur, de sorte qu'il n'est pas un très bon résumé
  • édité; l'erreur est à peu près comme je l'ai dit; "non-statique méthode ajouter(java.lang.De l'objet) ne peut pas être référencé à partir d'un contexte statique"
  • si votre liste ne contient qu'un seul type d'objet, vous devriez regarder dans l'utilisation de génériques, trop, et déclare que private List<Foo> list = new ArrayList<Foo>();
  • Cela montre pourquoi vous devez toujours citer les messages d'erreur exactement. Vous avez d'abord dit "il se plaint que je ne peut pas référence à un non-type statique à partir d'une méthode statique" mais alors, vous avez dit que l'erreur a été "non-statique méthode ajouter(java.lang.De l'objet) ne peut pas être référencé à partir d'un contexte statique". Il y a une différence entre un non-type statique et non méthode statique.
InformationsquelleAutor BB ON | 2010-12-04