web-dev-qa-db-ja.com

矢印演算子 ' - >'はJavaで何をするのでしょうか。

いくつかのコードを捜している間に、私は矢の演算子に出くわしましたが、それは正確に何をしますか? 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();
    }
});
135
Mike Rylander

これは、Java 8で導入される、新しいラムダ式の構文の一部です。これを理解するためのオンラインチュートリアルがいくつかあります。ここに、 リンク を1つにリンクします。基本的に、->は実際の式(右側)からパラメーター(左側)を分離します。

100
Óscar López

私は信じています、この矢印はあなたのIDEのために存在します。 IntelliJ IDEAはいくつかのコードでそのようなことをします。これはコードの折りたたみと呼ばれます。矢印をクリックして展開できます。

31
Anton-M

これはインターフェースを実装したいときにも便利です。

Runnable r = ()-> System.out.print("Run method");

と同等です

Runnable r = new Runnable() {
            @Override
            public void run() {
                System.out.print("Run method");
            }
        };
23
Justin Patel

これはラムダ式です。

つまり、listOfCarsから、arg0はそのリストの項目の1つです。その項目で彼はやろうとしている - それ故に - >、括弧の内側にあるものは何でも。

この例では、彼は条件に合う車のリストを返します。

Car.SEDAN == ((Car)arg0).getStyle();
12
simple-thomas

Java 8で追加されたラムダ式の新しい演算子

ラムダ式は、メソッド作成の簡単な方法です。
これはインプリメントするために間接的に使用されます 機能インターフェース

一次構文:(パラメータ) - > {文; }

いくつかの基本的な 効果的なラムダ式を書くための規則 があります。

0
Manasi