我有一個菜單系統,它將打印有關ArrayList的各種信息。在第三種情況下,我必須調用一個打印arraylist大小的方法。我試圖調用的方法是同一個類的一部分。這些是我收到的錯誤消息。我將如何解決這些問題?將ArrayList傳遞給要打印的方法大小
錯誤:
non-static method printrecordnumber(ArrayList<vehicle>) cannot be referenced from a static context
case 3: System.out.println("Number of records: " + printrecordnumber(vehiclearray));
錯誤:
'void' type not allowed here
case 3: System.out.println("Number of records: " + printrecordnumber(vehiclearray));
這裏是我的代碼有:
//Menu System
do{
System.out.println("Enter number of option or stop to stop the program\n1. Print all data\n2. Print all data (Sorted)\n3. Print number of records\n4. Print Bicycles and Trucks from the sorted data\n5. Print vehicles from area code 987");
try{
String option = input.next();
if((option.equals("stop"))) {
System.exit(0);
}
int optionint = Integer.parseInt(option);
switch (optionint){
case 1:
break;
case 2:
break;
case 3:
System.out.println("Number of records: " + printrecordnumber(vehiclearray));
break;
case 4:
break;
case 5:
break;
}
}
catch (NumberFormatException e){}
}while(true);
//Main Method Ending Bracket
}
public void printrecordnumber(ArrayList<vehicle> vehiclearray){
System.out.println(vehiclearray.size());
}
你知道靜態和非靜態方法之間的區別? –
第一個錯誤:您正在從靜態塊調用非靜態方法。你需要了解靜態和非靜態之間的區別。 – meghamind
第二個錯誤:當一個方法返回void時,沒有什麼可以打印,printrecordnumber已經打印,你應該直接調用它。 – meghamind