質問

私は最近、C#からJavaに移動しました[再び]。しかし、私はラムダの表現とIenumerableのようなものをひどく見逃しています。だから私はJavaのLambda Expression Libraryを探しています。

より良いライブラリはありますか ラムダジ?

また、Javaプログラムでは、Clojureは直接インラインできますか? Java関数のClojureコードを混ぜることはできますか?

役に立ちましたか?

解決

Java 8 ラムダがネイティブにサポートしている可能性があります。それまでは、匿名の内部クラスとライブラリの組み合わせを使用できます。 Google-Guava. 。以下は、調べることができる他のライブラリです

または見てください スカラ

他のヒント

Javaの同等のforeachループはこのように構成されています

List<Foo> fooList = // some list containing foos
for (Foo foo : fooList){
    // do stuff
}

JavaにはLambda式はありませんが、Java8まで待つことができれば、閉鎖を追加しています。あなたが得ることができる最も近いのはです 匿名の内部クラス.

Google Guavaライブラリには含まれています FunctionPredicate ラムダのような機能をエミュレートするために使用できるクラス。上記のKgradが言及しているように、それぞれの匿名インスタンスを作成できます。

http://guava-libraries.googlecode.com/svn/trunk/javadoc/google/common/base/function.html
http://guava-libraries.googlecode.com/svn/trunk/javadoc/google/common/base/predicate.html

このようなクラスを自分で簡単に書くことはできますが、Guavaには、さまざまな種類の反復可能性を変換したりフィルタリングするなどの機能と述語を利用する多くのヘルパーメソッドが含まれています。 http://guava-libraries.googlecode.com/svn/trunk/javadoc/google/common/collect/iterables.html

注:Pangeaはすでに上記のGoogle Guavaへのリンクを既に投稿していることを認識していますが、すでにこの投稿を書き始めていて、リンクを提供することはまだ役立つと考えていました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top