我使用Eclipse Gluon插件设置了一个JavaFX Gluon项目,并尝试使用Dagger来获取Gluon Ignite(Gluon Ignite;基本上是一个能够在JavaFX中使用CDI的包装器框架。
在tutorial中,我找到了以下Java 8 Lambda表达式来创建DaggerContext对象:
private final DaggerContext context = new DaggerContext(this, () -> Arrays.asList(new DaggerModule()));
这让我感到困惑,因为我对Lambda表达式来说很陌生。但是,如果它完美无缺,我可能不会问这个问题 - 但它并没有;)Eclipse报告'
构造函数DaggerContext(GluonApplication,() - > {})未定义
那么有人可以一步一步告诉我那里发生了什么吗?也许保守的代码版本有助于更好地理解它。
我知道像这样的lambda表达式被用作创建匿名类对象的简短形式。
因此,当查看DaggerContext的构造函数时,我看到表达式() -> Arrays.asList(new DaggerModule())
应该创建一个类型为Supplier<Collection<Object>>
的对象,但这显然不起作用。
---更新---
问题只是一个简单的导入问题。我必须添加import java.util.Arrays;
来解决错误。 Sill,如果有人可以提供对lambda表达式的进一步解释,那将是很好的。