Eclipse Gluon プラグインを使用して JavaFX Gluon プロジェクトをセットアップし、Dagger を使用して Gluon Ignite ( Gluon Ignite ; 基本的に JavaFX で CDI を使用できるラッパー フレームワーク) を取得しようとしました。
チュートリアルで、 DaggerContext オブジェクトを作成する次の Java 8 Lambda 式を見つけました。
private final DaggerContext context = new DaggerContext(this, () -> Arrays.asList(new DaggerModule()));
私はラムダ式にまったく慣れていないので、これは少し混乱します。ただし、問題なく動作していれば、おそらくこの質問はしないでしょうが、そうではありません ;) Eclipse レポート '
コンストラクター DaggerContext(GluonApplication, () -> {}) は未定義です
それで、誰かがそこで何が起こっているのかを段階的に教えてもらえますか? おそらく、コードの保守的なバージョンは、それをよりよく理解するのに役立つでしょう.
このようなラムダ式は、匿名クラスのオブジェクトを作成するための短い形式として使用されることを知っています。したがって、DaggerContext のコンストラクターを見ると、式() -> Arrays.asList(new DaggerModule())
が type のオブジェクトを作成する必要があることがわかりますSupplier<Collection<Object>>
が、これは明らかに機能しません。
- - アップデート - -
問題は単なるインポートの問題でした。import java.util.Arrays;
エラーを解決するために追加する必要がありました。シル、誰かがラムダ式についてさらに説明を提供できればいいのですが。