読んでいるにもかかわらず、わかりにくいコードがいくつか出てきました。 2つの引数を取るメソッドへの呼び出しがあります。その1つはRunnableです。ラムダがあるにもかかわらず、Runnableオブジェクトを渡すのではなく。例えばJava8のラムダからRunnableを作成する方法
:
public class LambdaTest { private final Lock lock = new ReentrantLock(); @Test public void createRunnableFromLambda() { Locker.runLocked(lock,() -> { System.out.println("hello world"); }); } public static class Locker { public static void runLocked(Lock lock, Runnable block) { lock.lock(); try { block.run(); } finally { lock.unlock(); } } } }
だから私の質問は、あなたがたRunnableはラムダから作成する方法を説明することができ、また、誰かが構文を(説明することができ下さい) - > {}。特に、角括弧は何を意味しますか?
ありがとうございました。
トンオンライン
(私はそれがバイトコードと同等ではなく、機能面で同等であることを確信している)と*と同等ですこの。 '() - > {}' '()'は、関数インタフェースで宣言されたメソッドの仮パラメータを表します。 '{}'はそのメソッドの本体です。 ' - >'はボディからパラメータを分離します。 –