我可以使用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。
答案 0 :(得分:4)
从外部获取参数没有问题
private void runableWithParameter(final String message) {
final Runnable runnable = ()->{
System.out.println(message);
};
}