我有一个相对基本的程序,其中有几种方法可以从用户那里获取输入(使用Scanner对象)。我正在寻找哪种技术(如果有)被视为标准或最佳实践。在这里,我将使用一种方法作为示例。


在每种方法中分别创建一个新的扫描仪对象:


// Get date from user
public static LocalDate getDateFromUser(String date_request_label){

    Scanner inputScan = new Scanner (System.in);

    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}



在main中创建一个扫描程序对象,并在每个方法中调用它:


// Get date from user
public static LocalDate getDateFromUser(Scanner inputScan, String date_request_label){
    System.out.print(date_request_label + " (YYYYMMDD): ");
    String input_string = inputScan.nextLine();

    // Split input into year/month/day
    int year  = Integer.parseInt(input_string.substring(0,4));
    int month = Integer.parseInt(input_string.substring(4,6));
    int day   = Integer.parseInt(input_string.substring(6,8));

    return LocalDate.of(year,month,day);
}


谢谢!

最佳答案

IMHO重用对象是可取的,只要它不会降低代码的可读性即可。

所以我会选择第二种。

10-05 21:13
查看更多