这个有效的Java代码会从javac 1.8 update 91中产生错误

Bra*_*ell 12 java lambda compiler-errors

我相当确定下面的代码是有效的Java 1.8代码:

import java.util.function.Consumer;

public class UnsolvableClass {

    private Consumer<Object> func = (Object theErrorVariable) -> {};

    public UnsolvableClass() {
        return;
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,您可能会想:"为什么在构造函数中有返回?" 好吧,那是因为它是我提出的最小的示例代码,产生了这个错误.

请注意,在构造函数中使用return语句是完全合法的.

编译时,javac会抛出此错误.

UnsolvableClass.java:10: error: variable theErrorVariable might not have been initialized
        return;
        ^
1 error
Run Code Online (Sandbox Code Playgroud)

我喜欢当错误与..."theErrorVariable"变量未被初始化时它认为错误发生在"返回"行上的情况.

如果我删除"返回"行,一切都编译好.此外,如果我删除lambda语句,它也编译好.

注意:我尝试使用Eclipse的java编译器进行编译,并且编译成功.

听起来像javac的lambda支持中一个非常模糊的错误.我错过了什么吗?

如果我不是,这是一个真正的错误,我会在哪里向Oracle报告?