0
在執行Java到Groovy代碼遷移的初始階段時,我遇到了一個問題,即當Java返回正確的整數(123)時,Groovy版本從Future返回null。未來從執行器服務提交返回null提交
在J1.java和G1.groovy之間進行的唯一更改是類名和lambda到閉包轉換。
//文件:J1.java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class J1 {
public static void main (String... args) throws Exception {
ExecutorService executor = Executors.newFixedThreadPool (1);
Future<Integer> future = executor.submit (() -> 123);
System.out.println ("Result: " + future.get());
executor.shutdown();
}
}
//文件:G1.groovy
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class G1 {
public static void main (String... args) throws Exception {
ExecutorService executor = Executors.newFixedThreadPool (1);
Future<Integer> future = executor.submit ({ -> 123 });
System.out.println ("Result: " + future.get());
executor.shutdown();
}
}
Java結果:123
Groovy的結果:空
這是實驗如果是的話,爲什麼?我嘗試了許多變體,都產生相同的結果。有什麼我缺少使用Groovy產生相同的結果?
Groovy: 2.4.5
Java: 1.8 64-bit
Platform: Windows 7 64-bit