Ich habe gerade experimentiert und festgestellt, dass, wenn ich den Rolling Code ausführe, es nicht kompiliert und ich kann nicht herausfinden, warum.Java - eine statische Referenz auf die nicht statische Feldliste erstellen
Meine IDE sagt 'Kann nicht eine statische Referenz auf die nicht statische Feldliste machen', aber ich verstehe nicht wirklich, was oder warum das ist. Auch was sonst gilt es, das heißt: ist es nur private Variablen und Methoden oder auch und warum ?:
public class MyList {
private List list;
public static void main (String[] args) {
list = new LinkedList();
list.add("One");
list.add("Two");
System.out.println(list);
}
}
Allerdings, wenn ich es auf die folgenden ändern, es funktioniert:
public class MyList {
private List list;
public static void main (String[] args) {
new MyList().exct();
}
public void exct() {
list = new LinkedList();
list.add("One");
list.add("Two");
System.out.println(list);
}
}
Die Hauptmethode ist statisch. Es hat nur Zugriff auf statische Elementvariablen und Funktionen der einschließenden Klasse. Der Fehler ist ziemlich selbsterklärend. – Perception
Aus Ihrem Code sieht es so aus, als wollten Sie eine Singleton Factory erstellen. Wenn das Ihr Ziel ist, sollten Sie 'private List Liste ändern; 'zu' private statische Liste Liste; ' –
@Perception: Also, wenn er die' private List-Liste ändert; 'zu' private statische Liste Liste; 'im ersten Code sollte es funktionieren ??? – noMAD