[英]Static ArrayList being empty when called from another class
在 C 類中,我從 csv 文件中讀取並將它們放入 A 類 object,然后放入 arraylist B 類,它是 ZABCBDC2A2ED4F8EBC40 的子類
public class classC {
public static ArrayList<classA> arraylist= new ArrayList<>();
private classC() {
// do not instantiate
}
public static ArrayList<classA> readData(File inFile) {
try {
Scanner reader = new Scanner(inFile);
String header = reader.nextLine();
while (reader.hasNextLine()) {
String nextLine = reader.nextLine();
//System.out.println(nextLine);
String[] tokens = nextLine.split(",");
String a= tokens[0];
double b= Double.parseDouble(tokens[1]);
double c= Double.parseDouble(tokens[2]);
double d= Double.parseDouble(tokens[3]);
double e=Double.parseDouble(tokens[4]);
//store the data in classa object
classA classa= new classA(a, b, c, d, e);
//store each object in an arraylist
arraylist.add(classa);
}
for (int i = 0; i < arraylist.size(); i++) { //these prints fine
System.out.println(arraylist.get(i) + " ");
}
System.out.println(arraylist.size());
return arrayList;
}
}
然后在 Class BI 嘗試打印數組,但 arraylist 為空
public class classB extends ArrayList<classA> {
public static ArrayList<classA> arraylist = new ArrayList<>();
public classB() {
}
//here is my method to print
public void printArray() {
System.out.println("Elements of ArrayList are:");
System.out.println(arraylist.size()); //prints 0
}
}
在我的主要方法中
public class Main {
public static void main(String[] args) {
File inFile = new File("file.csv");
readData(inFile);
classB classb = new classB();
classb.printArray();
}
}
在 classA 中,我有必要的 getter setter 和 toString 方法來正確打印,我可以從 classC readData 方法打印,但不能從 classB printArray 方法打印。
有人可以告訴我我做錯了什么嗎?
您的 class B 不是 class A 的子類,它是 ArrayList 的子類。 您可能應該將其聲明更改為extends classA
。 這樣做之后,您還需要刪除 classB 中 arrayList 字段的聲明,因為否則它將掩蓋超類 classA 中同名字段的聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.