Znalazłem kod, który staram się zrozumieć pomimo odrobiny czytania. Jest wołanie do metody, która przyjmuje dwa argumenty, z których jeden jest Runnable. Zamiast przechodzić w obiekcie Runnable, ale istnieje lambda.W jaki sposób można utworzyć Runnable z Java8 lambda
Na przykład:
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(); } } } }
Więc moje pytanie jest, można wyjaśnić, jak Runnable jest tworzony z lambda, a także proszę może ktoś wytłumaczyć składnię () -> {}. W szczególności, co oznaczają nawiasy()?
dzięki.
Mnóstwo przewodników online to. '() -> {}' '()' reprezentuje formalne parametry dla metody zadeklarowanej w interfejsie funkcjonalnym. '{}' jest treścią tej metody. '->' oddziela parametry od treści. –