【问题标题】:Passing boolean parameter to method将布尔参数传递给方法
【发布时间】:2020-05-06 19:55:26
【问题描述】:

当我尝试传递在另一个方法中本地声明的布尔参数时,编译器会传递错误:

错误:(40, 71) java: 找不到符号 symbol: 变量 frei
位置:类flugVerein

获取布尔变量传递的方法:

public static void verfügbar(int[] flugAnzahl, String[] vorname, String[] bezeichnung, int[] zeit, boolean frei) 

变量的声明位置:

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
    boolean frei = false;

main方法中的方法调用:

verfügbar(flugAnzahl, vorname, bezeichnung, zeit, frei);

【问题讨论】:

    标签: java parameters boolean parameter-passing


    【解决方案1】:

    您无法访问frei 变量,因为您使用的是不同的方法。它是在ganzeTag 方法中声明的,但您正试图在main 方法中访问它。您可以做几件事。在我看来,最简单的方法是让它成为一个字段。

    private static boolean frei;
    

    然后在ganzeTag方法中:

    public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
        String eingabe = sc.nextLine();
        frei = false; // don't put the boolean.
    

    实际上,您甚至不需要该行,因为布尔字段的默认值为 false。

    public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
        String eingabe = sc.nextLine();
    

    【讨论】:

      【解决方案2】:

      @Jwan 我认为您指的是局部变量。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 2013-09-04
        相关资源
        最近更新 更多