いくつかのコードを捜している間に、私は矢の演算子に出くわしましたが、それは正確に何をしますか? Javaには矢印演算子がないと思いました。
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
return Car.SEDAN == ((Car)arg0).getStyle();
});
詳細:Java 6、Apache Commons Collection、IntelliJ 12
pdate/Answer: IntelliJ 12は、ラムダをサポートするJava 8をサポートし、「折りたたみ」それらをラムダとして予測し表示します。下記は「折りたたまれていない」コードです。
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
public boolean evaluate(Object arg0) {
return Car.SEDAN == ((Car)arg0).getStyle();
}
});
これは、Java 8で導入される、新しいラムダ式の構文の一部です。これを理解するためのオンラインチュートリアルがいくつかあります。ここに、 リンク を1つにリンクします。基本的に、->
は実際の式(右側)からパラメーター(左側)を分離します。
私は信じています、この矢印はあなたのIDEのために存在します。 IntelliJ IDEAはいくつかのコードでそのようなことをします。これはコードの折りたたみと呼ばれます。矢印をクリックして展開できます。
これはインターフェースを実装したいときにも便利です。
Runnable r = ()-> System.out.print("Run method");
と同等です
Runnable r = new Runnable() {
@Override
public void run() {
System.out.print("Run method");
}
};
これはラムダ式です。
つまり、listOfCarsから、arg0はそのリストの項目の1つです。その項目で彼はやろうとしている - それ故に - >、括弧の内側にあるものは何でも。
この例では、彼は条件に合う車のリストを返します。
Car.SEDAN == ((Car)arg0).getStyle();
Java 8で追加されたラムダ式の新しい演算子
ラムダ式は、メソッド作成の簡単な方法です。
これはインプリメントするために間接的に使用されます 機能インターフェース
一次構文:(パラメータ) - > {文; }
いくつかの基本的な 効果的なラムダ式を書くための規則 があります。