Я только что экспериментировал и обнаружил, что когда я запускаю скользящий код, он не компилируется, и я не могу понять, почему.Java - статическая ссылка на нестатический список полей
В моей IDE говорится: «Невозможно сделать статическую ссылку на список нестатических полей», но я не совсем понимаю, что это за причина. Кроме того, что еще это относится к, то есть: это только частные переменные и методы или слишком и почему ?:
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);
}
}
Однако, когда я изменить его к следующему, он работает:
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);
}
}
Основной метод - статический. Он имеет доступ только к статическим переменным-членам и функциям охватывающего класса. Ошибка довольно понятна. – Perception
Из вашего кода, похоже, вы пытаетесь создать одноадресную фабрику. Если это ваша цель, вы должны изменить 'private List list; 'to' private static List list; ' –
@Perception: Итак, если он изменяет список' private List ', 'to' private static List list; 'в первом коде, он должен работать? – noMAD