请帮我打电话给打印方法

时间:2012-11-25 05:17:39

标签: java class methods call

我创建了一种打印文件的方法,但它只传递真实值而不是 .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方法

3 个答案:

答案 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;
        }