Java 8 引入了 lambda 函数,我想实现类似阶乘的东西:
IntToDoubleFunction fact = x -> x == 0 ? 1 : x * fact.applyAsDouble(x-1);
编译返回
error: variable fact might not have been initialized
我如何引用函数本身。类是匿名的,但实例存在:它被称为 fact
。
原文由 user2678835 发布,翻译遵循 CC BY-SA 4.0 许可协议
我通常使用(一次定义所有功能接口)通用帮助程序类,它包装了功能接口类型的变量。这种方式解决了局部变量初始化的问题,让代码看起来更清晰。
在这个问题的情况下,代码将如下所示: