De la Kotlin KEEP :
Le raisonnement qui sous-tend ces limitations est que les futures versions de Kotlin peuvent étendre et/ou modifier la sémantique des fonctions qui retournent Les opérateurs de type Result et null-safety peuvent changer leur sémantique lorsqu'ils sont utilisés sur des valeurs de type Result. utilisées sur des valeurs de type Result. Afin d'éviter de casser le code existant code existant dans les futures versions de Kotin et de laisser la porte ouverte à ces changements, les utilisations correspondantes produisent maintenant une erreur. Les exceptions à cette règle sont faites pour les déclarations soigneusement revues dans la bibliothèque standard qui font partie de l'API du type Result lui-même.
Note : si vous voulez juste expérimenter avec le Result
vous pouvez contourner cette limitation en fournissant un argument de compilation Kotlin -Xallow-result-return-type
.
Lorsque vous utilisez Gradle sur un projet Java ou Android : Définir l'argument du compilateur sur la tâche de compilation Kotlin. Cela s'applique aussi bien au code de production qu'aux tests.
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
Lorsque vous utilisez Gradle sur un projet multiplateforme : Définir l'argument du compilateur pour chaque compilation cible. Cela s'applique aussi bien au code de production qu'aux tests.
kotlin {
targets.all {
compilations.all {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xallow-result-return-type"
}
}
}
}
0 votes
Montrez-nous votre code qui provoque l'erreur. Où se trouve
kotlin.Result
proviennent-ils ? Je ne trouve pas cette classe dans le bibliothèque standard .0 votes
Essayez kotlin 1.3 ou plus récent.
1 votes
Les limitations du type Kotlin Result sont levées dans la version 1.5, vous pouvez librement utiliser le type comme type de retour.