我相当确定下面的代码是有效的Java 1.8代码:
import java.util.function.Consumer;
public class UnsolvableClass {
private Consumer<Object> func = (Object theErrorVariable) -> {};
public UnsolvableClass() {
return;
}
}
现在,您可能会想:&#34;为什么在构造函数中有返回?&#34; 嗯,那是因为我提出的最小的示例代码会产生这个错误。
请注意,在构造函数中使用return语句是完全合法的。
javac在编译时会抛出此错误。
UnsolvableClass.java:10: error: variable theErrorVariable might not have been initialized
return;
^
1 error
我喜欢它认为错误发生在&#34; return&#34;当错误与...相关时,&#34; theErrorVariable&#34;变量未初始化。
如果我删除&#34;返回&#34;一行,一切都很好。另外,如果我删除lambda语句,它也可以编译好。
注意:我尝试使用Eclipse的java编译器编译它并成功编译。
听起来像javac的lambda支持中一个非常模糊的错误。 我错过了什么吗?
如果我不是,这是一个实际的错误,我会在哪里向Oracle报告?