我创建了一种打印文件的方法,但它只传递真实值而不是 .dat 文件中的实际值。你能看一下我的方法并告诉我出错了吗?非常感谢你。
调用打印方法:
System.out.println(printColumnHeaders(vehicles[x], false, false));
我的打印方法:
private static boolean printColumnHeaders(Vehicle vehicle,boolean isFirst,boolean printFull ) {
if(isFirst && printFull) {
System.out.println(vehicle.printFullHeadings());
isFirst = true;
printFull = true;
}
else if(isFirst){
System.out.println(vehicle.printSummaryHeadings());
isFirst = true;
}
return false;
}
此方法假设检查If isFirst布尔值是否为true且printFull布尔值为true 然后,调用车辆的printFullHeadings方法 next,如果isFirst布尔值为true,则为Else 最后,调用车辆的printSummaryHeadings方法
答案 0 :(得分:1)
如前所述,由于您传入false,因此您的方法不会打印。但是你似乎也有一个逻辑问题,因为你的静态方法总是返回一个布尔值,你将它传递给System.out.println。你可能会尝试类似的东西:
if ( printColumnHeaders(System.out, vehicles[x], false, false) == false)
... handle print error
您的打印方法是:
private static boolean printColumnHeaders(java.io.PrintStream writer, Vehicle vehicle,boolean isFirst,boolean printFull ) {
if(isFirst && printFull) {
writer.println(vehicle.printFullHeadings());
isFirst = true;
printFull = true;
}
else if(isFirst){
writer.println(vehicle.printSummaryHeadings());
isFirst = true;
}
return false;
}
if(isFirst && printFull) {
writer.println(vehicle.printFullHeadings());
isFirst = true;
printFull = true;
}
else if(isFirst){
writer.println(vehicle.printSummaryHeadings());
isFirst = true;
}
return false;
}
这允许您的方法输出的不仅仅是标准输出。
答案 1 :(得分:0)
System.out.println(printColumnHeaders(vehicles[x], false, false));
您将false,false传递给printColumnHeaders方法,该方法只会导致它终止并返回false,这会通过调用System.out.println()来打印。
如果你将一个方法作为println()的参数调用,它将打印该方法的返回值,而不是你希望在该方法中打印的任何内容。
答案 2 :(得分:0)
以下是我修复它的方法:
private static void displayVehicleData(String displayType) {
boolean isFirst = true;
for(int x = 0; x < vehicles.length; x++){
switch(displayType) {
case "Vehicles" : // List All Vehicles
isFirst = printColumnHeaders(vehicles[x], false, isFirst);
System.out.println(vehicles[x].printSummaryOutput());
break;
case "Cars": // List All Cars
if(vehicles[x].getVehicleType().equals("American Car") ||
vehicles[x].getVehicleType().equals("Foreign Car")) {
isFirst = printColumnHeaders(vehicles[x], false, isFirst);
System.out.println(vehicles[x].printSummaryOutput());
}
印刷方法:
private static boolean printColumnHeaders(Vehicle vehicle, boolean printFull, boolean isFirst) {
if(isFirst && printFull){
System.out.println(vehicle.printFullHeadings());
}
else if (isFirst){
System.out.println(vehicle.printSummaryHeadings());
}
return false;
}