我剛剛進行了試驗,發現當我運行滾動代碼時,它不能編譯,我找不到原因。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 2012-04-17 23:43:11
從你的代碼看起來你正在試圖創建一個單身工廠。如果這是你的目標,你應該改變'私人列表清單; '到'私人靜態列表列表;' – 2012-04-17 23:45:02
@Perception:所以如果他改變'私人列表列表;'到'私人靜態列表列表;'在第一個代碼,它應該工作? – noMAD 2012-04-17 23:45:15