【发布时间】:2017-03-18 07:12:33
【问题描述】:
我有一个运行器类,它在重载方法中采用 Runnables 或 Callables。
class MyController {
public void run(Runnable command) {
}
public void run(Callable command) {
}
}
其他需要执行run方法的类做
controllerInstance.run(() -> {...});
基于 lambda 表达式的代码如何确定调用 run(Runnable) 还是 run(Callable) ?有没有办法改变这个默认行为?
【问题讨论】:
-
我建议通过重命名第二种方法
call()来明确说明。有一些方法可以让它与命名的方法一起工作(如下面的答案所示),但它们都倾向于导致代码不太优雅。