【问题标题】:Can I use nest a void inside another void in Java?我可以在 Java 中的另一个 void 中使用嵌套 void 吗?
【发布时间】:2017-07-29 18:00:42
【问题描述】:

所以,这是我的代码。

public class Cay {
    public void Mesaj() {
        System.out.println("Başka bir sınıftan merhabalar!");

        public void Araba() {
            System.out.println("Selamlar Tekrardan.");
        }
    }
}

public void Mesaj() 在我的其他课堂上效果很好。但是public void Araba() 不起作用。它给出了一个编译错误。

  • void[] 是无效类型
    • 参数 Araba 的非法修饰符;只允许决赛
    • 语法错误,插入“[ ]”以完成维度
    • 语法错误,插入“;”完成 LocalVariableDeclarationStatement
    • 令牌“Araba”的语法错误,AnnotationName 应在此令牌之后

我搜索了但找不到任何有用的东西。

【问题讨论】:

  • 您在 Mesaj 方法之后缺少一个结束 }
  • 但是你是怎么调用araba方法的??
  • 不能在 Java 中嵌套函数定义
  • @4castle 我没有在这里添加它们。在 Eclipse 中我正确放置了它们。
  • edit您的问题,以便代码正确。理想情况下,我们应该能够运行您的代码并看到您描述的问题。见:minimal reproducible example

标签: java nested void


【解决方案1】:

您的 Mesaj() 函数缺少右大括号。

public class Cay {
  public void Mesaj(){
    System.out.println("Başka bir sınıftan merhabalar!");
  }

  public void Araba(){
    System.out.println("Selamlar Tekrardan.");
  }
}

【讨论】:

  • 我只是没有在此处添加它们。在 Eclipse 中我放置了所有右大括号。
  • 您有正确数量的大括号,但不一定在正确的位置。方法的作用域(例如“Mesaj”)必须在下一个方法开始之前关闭。
【解决方案2】:

一个类可以有多个成员函数,可以是 void/String 类型或任何其他类型,但一个函数的范围不能包含另一个函数,因此会出现错误。所以把大括号从末尾去掉,在araba()开始前加一个

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 2012-10-19
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2022-01-09
    相关资源
    最近更新 更多