Dieses Mal habe ich etwas über Optional gelernt, das für die Android-Entwicklung wichtig ist, also werde ich es ausgeben. Bei der Entwicklung von iOS mit Swift ist eine Entwicklung ohne Option nicht mehr möglich Das Konzept von Optional wird häufig in der mobilen Entwicklung verwendet.
Was in iOS zu sagen
Optional.swift
let string1: String? = nil
let string2: String = "Hello Swift"
Das ist der einzige Unterschied, aber mit Swift waren die Kosten für die Verwendung von Optinal sehr gering. Natürlich führte Objective-C später auch das Konzept von Optional ein. Wenn ich also argumentieren würde, dass es einfach wäre, Samaya Java zu schreiben Ich habe den Eindruck, dass es ziemlich schwierig war, dies zu verwenden.
Ich fand heraus, dass Optional für Java verwendet werden kann, Als ich versuchte, es zu verwenden, trat plötzlich ein Kompilierungsfehler auf.
Anscheinend ist es in Android Studio nicht standardmäßig enthalten Es scheint eine API-Ebene zu geben. Es scheint, dass es nur verwendet werden kann, wenn die API-Ebene 24 oder höher ist. Daher muss die Datei build.gradle geändert werden.
build.gradle
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.sanpuru.sampleapp"
minSdkVersion 24 // <-Wechseln Sie hier zu 24 oder mehr
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
}
}
Wenn Sie dies nicht tun, können Sie Optional nicht verwenden. Wenn Sie diese Datei ändern, wird sie natürlich synchronisiert.
Jetzt können Sie es endlich benutzen.
Von hier aus können Sie nun endlich Optional in Java verwenden. Die Deklarationsmethode ist wie folgt. Deklarieren Sie String und Integer.
Optional.java
Optional<String> optString = Optional.of("string");
Optional<Integer> optInt = Optional.of(1);
Erklären Sie so. Obwohl es einen festen Wert enthält, wird es im eigentlichen Feld nicht auf diese Weise verwendet. Es ist fast so, als würde man den Schlüsselwert des JSON-Objekts einfügen, der nach der API-Kommunikation zurückkommt. Jetzt stürzt die App auch dann nicht ab, wenn der JSON-Wert "null" ist.
Das Obige enthält den Wert von Optional.of ("Zeichenfolge") anstelle von Zeichenfolge. Das Drucken führt (wahrscheinlich) nicht zu einer Zeichenfolge.
Optional wird nicht wie es ist verwendet und wird normalerweise ausgepackt. Als Bild ist es so, als würde man eine Zeichenfolge oder eine Zeichenfolge herausnehmen, die in einen Umbruch namens Optional eingewickelt ist.
Als allgemeine Schreibweise
Unwrap.java
// orElse
String hoge = optString.orElse("Standardwert");
Integer foo = optInt.orElse(100);
Ändern Sie es in "String" oder "Integer".
Außerdem
Present.java
if (optString.isPresent()) { //Methode zum Überprüfen des Vorhandenseins eines Werts
//Die get-Methode, die den Wert abruft, löst eine Laufzeitausnahme aus, wenn der Wert nicht vorhanden ist und die App abstürzt
String string = optString.get();
System.out.println(string);
}
Wenn die obige get-Methode jedoch keinen Wert hat, (Zum Beispiel, wenn es sich wie Optional.of ("") anfühlt) Ich werfe einen Laufzeitfehler und die App stürzt ab.
Ich denke, es würde als ".orElse (Standardwert)" geschrieben.
In meinem Fall denke ich, dass Java 8 Stream verfügbar sein wird, nachdem Sie Optional verstanden haben. Es wird genauso geschrieben wie RxSwift in iOS. Als ich danach anfing, Java zu schreiben, konnte ich die Bedeutung von Lambda-Ausdrücken und Methodenreferenzen verstehen. Wenn Sie diesen Bereich verstehen, können Sie ein guter Java-Ingenieur werden.
Monadische Verwendung von Java Optional
Java 8 "Optional" - Wie man in Zukunft mit Null umgeht -
Sie können die Notwendigkeit von Optional besser verstehen, indem Sie sich auf die Seiten hier beziehen.
Recommended Posts