Cette fois, j'ai découvert Optional, qui est important dans le développement Android, donc je vais le sortir. Lors du développement d'iOS avec Swift, il n'est plus possible de penser au développement sans Option Le concept facultatif est souvent utilisé dans le développement mobile.
Que dire sous iOS
Optional.swift
let string1: String? = nil
let string2: String = "Hello Swift"
C'est la seule différence, mais avec Swift, le coût d'utilisation d'Optinal était très minime. Naturellement, Objective-C a également introduit le concept d'Optionnel plus tard. Par conséquent, si je disais qu'il serait facile d'écrire Samaya Java J'ai l'impression que c'était assez difficile à utiliser.
J'ai découvert que Optional peut être utilisé pour Java, Lorsque j'ai essayé de l'utiliser, une erreur de compilation s'est soudainement produite.
Apparemment, il n'est pas inclus par défaut dans Android Studio Il semble y avoir un niveau d'API. Il semble qu'il ne puisse être utilisé que lorsque le niveau d'API est égal ou supérieur à 24, il est donc nécessaire de modifier le fichier build.gradle.
build.gradle
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.sanpuru.sampleapp"
minSdkVersion 24 // <-Remplacez ici par 24 ou plus
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
Si vous ne le faites pas, vous ne pourrez pas utiliser Facultatif. Bien sûr, si vous modifiez ce fichier, il se synchronisera.
Maintenant, vous pouvez enfin l'utiliser.
Maintenant, à partir d'ici, vous pouvez enfin utiliser Optional en Java. La méthode de déclaration est la suivante. Déclarez une chaîne et un entier.
Optional.java
Optional<String> optString = Optional.of("string");
Optional<Integer> optInt = Optional.of(1);
Déclarez comme ça.
Bien qu'il ait une valeur fixe, il n'est pas utilisé de cette manière dans le champ réel.
C'est presque comme insérer la valeur de clé de l'objet JSON qui revient après la communication de l'API.
Maintenant, l'application ne plantera pas même si la valeur JSON est null
.
Ce qui précède contient la valeur de Optional.of ("string") au lieu de string. L'impression de ceci ne produit pas de chaîne (probablement).
Facultatif n'est pas utilisé tel quel et est généralement déballé. En tant qu'image, c'est comme retirer une chaîne ou 1 enveloppée dans une enveloppe appelée facultative.
Comme manière générale d'écrire
Unwrap.java
// orElse
String hoge = optString.orElse("Valeur par défaut");
Integer foo = optInt.orElse(100);
Changez-le en String
ou ʻInteger`.
Autre que ça
Present.java
if (optString.isPresent()) { //Méthode pour vérifier l'existence d'une valeur
//La méthode get qui obtient la valeur lève une exception d'exécution si la valeur n'existe pas et que l'application se bloque
String string = optString.get();
System.out.println(string);
}
Cependant, si la méthode get ci-dessus n'a pas de valeur, (Par exemple, si cela ressemble à Optionnel.of ("")) Je lance une erreur d'exécution et l'application plante.
Donc, je pense que cela s'écrirait comme .orElse (valeur par défaut)
.
Dans mon cas, je pense que Java 8 Stream sera disponible après avoir compris Facultatif. Il sera écrit de la même manière que RxSwift sous iOS. Après cela, lorsque j'ai commencé à écrire Java, j'ai pu comprendre la signification des expressions lambda et des références de méthodes. Si vous pouvez comprendre ce domaine, vous pouvez devenir un bon ingénieur Java.
Utilisation monadique de Java facultative
Java 8 "Facultatif" ~ Comment gérer null à l'avenir ~
[Java8] Exception facultative!
Vous pouvez mieux comprendre la nécessité d'Optionnel en vous référant aux pages ici.
Recommended Posts