【问题标题】:Defining Functions Inside Functions在函数内部定义函数
【发布时间】:2017-11-24 04:31:20
【问题描述】:

我试图在另一个函数中定义函数,但出现错误。

void foo (int first) {
  int doubled = first * 2;
  int addNums (int second) {
    return doubled + second;
  }
  addNums(3);
}

这是定义函数的错误方式吗?我究竟做错了什么?我需要在另一个函数中定义该函数,因为它需要范围为外部函数的变量。

【问题讨论】:

  • 谁说可以在函数内部定义函数?
  • onCreate { addTwo(2); } THEN int addTwo(int num) { return num + 2; }
  • 所以你告诉我我需要在 onCreate() 块之外定义它?
  • 解决了,感谢 CmosBattery!
  • 备案:请阅读minimal reproducible example

标签: java function scope


【解决方案1】:

您不能在 Java 中的另一个方法中编写一个方法。如果它需要来自onCreate() 方法的变量,那么您必须将它们的值作为参数传递给您的方法。

【讨论】:

  • ...或将它们存储在类成员变量中
  • @John3136 确实如此,尽管如果只是为了在方法中访问它们,我不会将它们提升为成员变量。我只会在类具有该状态有意义的情况下这样做,这可能是 ActivityFragment,使其有状态可能没有意义。
【解决方案2】:

只需在类中创建函数,然后在 onCreate 中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 2018-02-25
    相关资源
    最近更新 更多