Właśnie eksperymentowałem i odkryłem, że po uruchomieniu kodu zmiennego, nie kompiluje się i nie mogę zrozumieć dlaczego.Java - tworzenie statycznego odwołania do niestatycznej listy pól
Moje IDE mówi: "Nie można utworzyć statycznego odwołania do niestatycznej listy pól", ale tak naprawdę nie rozumiem, co to jest ani dlaczego. Również to, co jeszcze jest do zastosowania, to znaczy: jest to tylko zmienne i metody prywatne lub też dlaczego ?:
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);
}
}
Jednak, kiedy go zmienić na następujących, to działa:
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);
}
}
Główna metoda jest statyczna. Ma tylko dostęp do statycznych zmiennych składowych i funkcji klasy otaczającej. Błąd jest dość oczywisty. – Perception
Z Twojego kodu wygląda na to, że próbujesz utworzyć fabrykę singletonów. Jeśli to jest twój cel, powinieneś zmienić 'prywatną listę list; 'do' listy statycznych list prywatnych; ' –
@Perception: Więc jeśli zmienia' listę list prywatnych; 'na' list statycznych list prywatnych; 'w pierwszym kodzie powinien działać ??? – noMAD