我正在写一个程序,我得到这样的结果:“最后的局部变量asd不能被赋值,因为它是在一个封闭类型中定义的”。
我将提供一个示例,它不是来自我的代码,但这也会产生错误。我有一个arraylist,我想以后在按钮之外使用它(如果我在按钮内部定义它,以后就不能使用它了),但是按下按钮应该会给这个arraylist提供值。在本例中,它将“创建一个新的ArrayList”,这将导致同样的问题。
Button btn = new Button("ASD");
final ArrayList asd = new ArrayList();
btn.setOnAction(new EventHandler<ActionEvent>() {
public void handle(final ActionEvent event) {
asd = new ArrayList(); //here's the error..
}
});
清除ArrayList,然后添加值。
问题内容: 关于编译器错误,有一些关于Stack Overflow的主题,解决方案是“将其声明为最终的,您就完成了”,但是对于这个 理论性的 问题,我想检查一下该代码无法编译的逻辑原因是什么: (解决方案:声明为final),而这一点却做到了: 我真的很困惑 不是最终值,它可以多次更改,而的可怜参数只能在其方法体内更改,而是由编译器负责;) 甚至编译器错误也误导了我。: 与什么不同?与内部类不是在
我目前正在学习继承,对于在超类中声明一个方法final应用于子类的限制,我有点困惑。假设我有一个具有取款方法的超类BankAccount,它需要用户密码和金额才能取款,并将帐户余额设置为(balance - amount)。我希望将该方法声明为final,这样其他子类就不会潜在地覆盖它,并允许客户端在不改变帐户余额的情况下取款。 我想避免这样的事情被允许: 然而,有些银行账户允许透支,在提款时也必
问题内容: 我想知道使用最终局部变量是否有可用性。当继承出现时,变量无论如何都不会被覆盖。例如下面的简单代码 这个例子很简单,可能不是一个相关的代码,但是问题比较笼统。我已经看到了很多代码(全部都包含在具有最终局部变量的main函数中)是否有将局部变量声明为final other的可用性。不能在同一功能中进行编辑? 问题答案: 首先,关于变量被“覆盖”的部分具有两个非常不同的含义。对于类和方法,它
7.5.10 局部变量的定义 局部变量的定义格式: LOCAL 变量名[[数量]] [:数据类型] [,变量名[[数量]] [:数据类型]]... 伪指令LOCAL的作用是说明一个或多个临时的局部变量(位于堆栈中)。局部变量必须在任何指令之前加以说明,并可用多个LOCAL伪指令来说明其局部变量。 在子程序中,若说明了某个局部变量,则子程序体中的指令就可使用该局部变量。汇编程序会把对它的引用转换成用
问题内容: 我是lambda和Java8的新手。我面临以下错误。 封闭范围中定义的局部变量日志必须是final或有效的final 问题答案: 该消息说,到底是什么问题:你的变量 数 必须是最后的(即:携带关键字决赛),也可以有效地最终(即:你只有一个值分配给它 一旦 拉姆达外)。否则,您将无法在lambda语句中使用该变量。 但是,当然,这与您使用 log 冲突。关键是:您不能在lambda内部写
问题内容: 我收到错误提示,就像在主题中一样,请问如何修复…错误在menuItem循环中,在这里我尝试将textArea前景颜色设置为从menuItem中选择的一种:(colors [mi]) 问题答案: 该错误意味着 您不能在内部类中使用局部变量。 要在内部类中使用变量,必须对其进行声明。只要是循环计数器并且不能分配变量,就必须创建一种变通方法来获取可在内部类内部访问的变量中的值: 因此,您的代