我有一个菜单系统,它将打印有关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