Runnable和lambda

Tom*_*Tom 8 java lambda java-8

我可以使用lambda创建一个简单的Runnable,如:

Runnable runnable = ()->{
    String message = "This is an hard coded string";
    System.out.println(message);
};
Run Code Online (Sandbox Code Playgroud)

上面的代码限制它创建了一个带有默认构造函数的Runnable(没有参数).

实际上,Runnable在创建时经常会获取信息,如下所示:

class MyRunnable implements Runnable {
    private final String message;

    public MyRunnable(String message) {
        this.message = message;
    }

    @Override
    public void run() {
        System.out.println(message);
    }
 }
Run Code Online (Sandbox Code Playgroud)

我会问如何为Runnable创建可以接受构造函数参数的lambda.

Bye*_*Bye 5

来自外部的参数没有问题

private void runableWithParameter(final String message) {
    final Runnable runnable = ()->{
        System.out.println(message);
    };
}
Run Code Online (Sandbox Code Playgroud)