10

最近、C#からJavaに移行しました[再び]。しかし、ラムダ式やIEnumerable.Foreach of C#のようなものをひどく見逃しています。だから私はJavaでラムダ式ライブラリを探しています。

LambdaJよりも優れたライブラリはありますか?

また、clojureはJavaプログラムで直接インライン化できませんか?つまり、Java関数にclojureコードを混在させることはできますか?

4

3 に答える 3

13

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

またはScalaをよく見てください

于 2011-01-23T18:48:43.660 に答える
3

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

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

このようなクラスは自分で簡単に作成できますが、Guavaには、さまざまな種類の反復可能オブジェクトの変換やフィルタリングなどを行うための関数と述語を利用するヘルパーメソッドが多数含まれています:http://guava-libraries.googlecode.com/svn/trunk /javadoc/com/google/common/collect/Iterables.html

注:パンゲアはすでに上記のGoogle Guavaへのリンクを投稿していることを認識していますが、私はすでにこの投稿を書き始めており、リンクを提供することは依然として有用であると考えました。

于 2011-01-23T18:53:15.797 に答える
3

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

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

Javaにはラムダ式はありませんが、Java8まで待つことができれば、クロージャーが追加されます。あなたが得ることができる最も近いものは匿名の内部クラスです。

于 2011-01-23T18:41:45.697 に答える