我是lambda和Java8的新手。我面临以下错误。
封闭范围中定义的局部变量日志必须是final或有效的final
public JavaRDD<String> modify(JavaRDD<String> filteredRdd) {
filteredRdd.html" target="_blank">map(log -> {
placeHolder.forEach(text -> {
//error comes here
log = log.replace(text, ",");
});
return log;
});
return null;
}
该消息说,到底是什么问题:你的变量 数 必须是最后的(即:携带关键字决赛),也可以有效地最终(即:你只有一个值分配给它 一旦
拉姆达外)。否则,您将无法在lambda语句中使用该变量。
但是,当然,这与您使用 log 冲突。关键是:您不能在lambda内部写任何东西……因此您必须退后一步,为自己打算做的事情寻找其他方式。
从这个意义上说:只要相信编译器即可。
除此之外,还有一个要理解的 核心 要点:您 不能
使用可以写入的局部变量。局部变量在运行时被“复制”到lambda的上下文中,并且为了实现确定性行为,只能读取它们,并且它们应该是 常量 。
如果您的用例是 写 某个对象,那么它应该是您的封闭类的一个字段!
因此,长话短说:
问题内容: 我收到错误提示,就像在主题中一样,请问如何修复…错误在menuItem循环中,在这里我尝试将textArea前景颜色设置为从menuItem中选择的一种:(colors [mi]) 问题答案: 该错误意味着 您不能在内部类中使用局部变量。 要在内部类中使用变量,必须对其进行声明。只要是循环计数器并且不能分配变量,就必须创建一种变通方法来获取可在内部类内部访问的变量中的值: 因此,您的代
我正在尝试创建一个I*J数量的按钮。 提前多谢。
我的主类在方法中运行。它运行一个可能需要大量时间才能完成的进程,所以我创建了另一个方法来停止该进程:它只是引发一个标志,使整个进程停止: 为了测试停止进程的方法,我应该采取什么方法来解决这个问题?
我正在尝试返回对象。 但我得到了 从内部类引用的局部变量必须是最终变量或实际上是最终变量 on < code > stats = statistics如何返回对象,但要确保< code >。close();是否正在运行?
我有一个JavaFX 8程序(用于JavaFXPorts交叉平台),几乎可以做我想做的事情,但又短了一步。该程序读取文本文件,对行进行计数以建立随机范围,从该范围中选取一个随机数,然后读取该行以进行显示。 我对java有点陌生,但似乎我是否使用Lambda在中显示下一个随机行,我的