【发布时间】:2016-03-04 17:17:48
【问题描述】:
我正在尝试使用 Lambda 表达式重写以下 Callable 实现:
public class NLQueryTask implements Callable<NLQuery> {
private String questionText, languageTranslationModelId;
public NLQueryTask(String questionText, String languageTranslationModelId) {
this.questionText = questionText;
this.languageTranslationModelId = languageTranslationModelId;
}
@Override
public NLQuery call() throws Exception {...}
如果我尝试在 Lambda 表达式中包含参数,则会出现编译器错误:
Callable<Integer> task = (String questionText, languageTranslationModelId) -> {...
显然我遗漏了一些东西(我今天开始阅读有关 Lambda 表达式的内容)。我应该如何定义 Lambda 表达式,使其不使用默认的 Callable 构造函数(无参数)而是我的例程需要的参数?
谢谢
【问题讨论】:
-
一个可调用对象在调用时不带参数,即它有一个方法
call()如果您想在创建可调用对象时使用可用的值,您可以引用它们,它们将被捕获。