转载

java – 在封闭范围内定义的局部变量日志必须是最终的或有效的最终

我是lambda和Java8的新手.我正面临以下错误.
Local variable log defined in an enclosing scope must be final or  effectively final
public JavaRDD<String> modify(JavaRDD<String> filteredRdd) {

    filteredRdd.map(log -> {

        placeHolder.forEach(text -> {

            //error comes here
            log = log.replace(text, ",");

        });

        return log;

    });

    return null;
}

该消息确切地说明了问题所在:您的变量日志必须是最终的(即:携带关键字final)或者实际上是最终的(即:您只在lambda之外为其分配一个值).

否则,您不能在lambda语句中使用该变量.

但是,当然,这与您使用日志冲突.重点是:你不能在lambda中写一些外在的东西……所以你必须退后一步,为你想做的事情寻找其他方法.

从这个意义上讲:只要相信编译器.和侧节点:而不是在这里发布错误消息;您可以尝试先将其谷歌(这称为“先前的研究”,实际上是您希望做的事情).

翻译自:https://stackoverflow.com/questions/38402493/local-variable-log-defined-in-an-enclosing-scope-must-be-final-or-effectively-fi

原文  https://codeday.me/bug/20190111/519310.html
正文到此结束
Loading...