Runnable和lambda

时间:2017-10-24 07:52:43

标签: java lambda java-8

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

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

上面的代码限制它创建了一个带有默认构造函数的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);
    }
 }

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

1 个答案:

答案 0 :(得分:4)

从外部获取参数没有问题

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