Pac*_*ver 1 java lambda java-8
如何使用Java 8将以下代码(特别是public void run()方法)转换为lambda?
public class SampleApp {
public static void main(String[] args) {
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("Hello " + i);
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t1.start();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试:
Thread t1 = new Thread(new Runnable() -> {
for (int i = 0; i < 10; i++) {
System.out.println("Hello " + i);
try {
Thread.sleep(100);
}
catch (InterruptedException e) {
e.printStackTrace();
}
};
);
Run Code Online (Sandbox Code Playgroud)
但Eclipse不断抛出错误......
只需删除new Runnable:
Thread t1 = new Thread(() -> { /* body */ });
Run Code Online (Sandbox Code Playgroud)
您可能需要考虑将该主体拉出为"真实"方法,并使用方法引用:
static void doSomething() { /* body */ }
public static void main(String[] args) {
Thread t1 = new Thread(SampleApp::doSomething);
}
Run Code Online (Sandbox Code Playgroud)
大lambda体不是特别可读.
| 归档时间: |
|
| 查看次数: |
462 次 |
| 最近记录: |