Недавно я изучаю kotlin-coroutine
, следуя этому учебному пособию CodeLabs . После некоторых раздумий мне стало интересно, смогу ли я использовать тот же код в java. Итак, сначала я написал простой kotlin код в MyKotlinFragment.kt
файле, например:
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
// ... some codes
private fun myKoroutineDemo(){
GlobalScope.launch {
val result1:Int = foo();
val result2:Int = bar();
val result3 = result1 + result2;
Log.e(TAG, ""+result3);
}
}
suspend fun foo():Int{
delay(2000);
var result = 2+2;
delay(500);
return result;
}
suspend fun bar():Int{
delay(2000);
var result = 7-2;
delay(500);
return result;
}
И назвал myKotlinDemo()
в моем фрагменте; это работает.
Затем я открыл java файл с именем MyCoroutineFragment.java
в том же проекте, но я не могу заставить его работать.
import kotlinx.coroutines.delay;
import kotlinx.coroutines.launch; // delay and launch imports arenot fount and so they are red
private suspend int foo(){ return 2 + 2; }
// the `suspend` keyword is not found by android studio, same with the bar method
private void myCoroutineDemo(){
// GlobalScope.launch don't show up here,
}
Я не могу преобразовать первый файл в java. Может кто-нибудь показать мне, как это исправить?
Если конвертировать невозможно, почему и как еще я могу использовать сопрограмму в java? Я открыт для всех решений.