如何从 Java8 lambda 创建 Runnable
我遇到了一些代码,尽管我读了一点,我还是很难理解。有一个调用方法,该方法接受两个参数,其中一个是Runnable。而不是传入一个 Runnable 对象,尽管有一个 lambda。
例如:
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是如何从lambda创建的吗,也可以请有人解释一下语法()->{}。具体来说,()括号是什么意思?
谢谢。