Синтаксис будущего параллелизма в Котлине - PullRequest
1 голос
/ 29 марта 2019

Я использую простой код Java для Future:

Future<Integer> futureTask = executor.submit(() -> {
    System.out.println("I'm Callable task.");
    return 1 + 1;
});

, когда я вставляю его в класс kotlin, он преобразуется в:

val futureTask = executor.submit {
    println("I'm Callable task.")
    1 + 1
}

, но когда я пытаюсь получить значение как вJava-класс Я получаю нулевое значение вместо числа

val integ = futureTask.get()

, когда я пишу return как в java-коде, мой ide предупреждает, что return здесь не разрешен.

Полный код котлина следующий:

fun main(args: Array<String>) {
   val executor = Executors.newSingleThreadExecutor()
   val futureTask = executor.submit {
       println("I'm Callable task.")
       1 + 1
   }

   println(futureTask.get())
   executor.shutdown() }

Вывод:

I'm Callable task.
null

Какой правильный синтаксис для Future?

...