Cet article vous présente principalement la comparaison de l'utilisation des types facultatifs dans Java8 et des types nullables dans Kotlin. L'article vous le présente de manière très détaillée à travers un exemple de code, qui a une certaine valeur d'apprentissage de référence pour l'étude ou le travail de chacun. Amis qui en ont besoin, veuillez suivre l'éditeur pour apprendre ensemble.
Cet article vous présente principalement le contenu pertinent sur l'utilisation des types facultatifs dans Java8 et des types nullables dans Kotlin. Il est partagé pour votre référence et votre apprentissage. Je ne dirai pas grand-chose ci-dessous, jetons un coup d'œil. dans l'introduction détaillée :
Dans Java 8, nous pouvons utiliser le type facultatif pour exprimer des types nullables.
package com.easy.kotlin; import java.util.Optional; import static java.lang.System.out; /** * Optional.ofNullable - 允许传递为 null 参数 * Optional.of - 如果传递的参数是 null,抛出异常 NullPointerException * Optional<String> b = Optional.of(s); */ public class Java8OptionalDemo { public static void main(String[] args) { out.println(strLength(Optional.of("abc"))); out.println(strLength(Optional.ofNullable(null))); } static Integer strLength(Optional<String> s) { return s.orElse("").length(); } }
Exécuter la sortie :
3 0
Cependant, un tel code n'est toujours pas si élégant.
À cet égard, Groovy fournit un opérateur d'accès aux propriétés/méthodes sécurisé ?.
user?.getUsername()?.toUpperCase();
Swift a également une syntaxe similaire, qui ne fonctionne que sur le type de Facultatif.
Types nullables en Kotlin
L'exemple Java 8 ci-dessus est plus simple et plus élégant lorsqu'il est écrit en Kotlin :
package com.easy.kotlin fun main(args: Array<String>) { println(strLength(null)) println(strLength("abc")) } fun strLength(s: String?): Int { return s?.length ?: 0 }
Parmi eux, on utilise String ? qui exprime aussi le sens de Optionalf7e83be87db5cd2d9a8a0b8117b38cd4
En comparaison, lequel est le plus simple ?
Effacer en un coup d'œil.
Il y a aussi l'orElse
s.orElse("").length();
fourni par Java 8 Facultatif Ce truc est l'opérateur Elvis le plus courant dans Kotlin :
<.>s?.length ?: 0En comparaison, quelle raison y a-t-il de continuer à utiliser l'optionnel de Java 8 ? Symboles étoiles en Kotlin
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!