24 Stunden mit Android-Entwicklung zu kämpfen, Java Optional

Mit Blick auf Java Optional

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.

Vorbereitung für die Verwendung Optional

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.

Lassen Sie uns in Java Optional deklarieren

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.

Verwendung der optionalen Variablen

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.

Konzepte, die nach dem Erlernen der Verwendung von Optional leicht zu erlernen sind

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.

Referenzseite

Monadische Verwendung von Java Optional

Java 8 "Optional" - Wie man in Zukunft mit Null umgeht -

[Java8] Optionale Ausnahme!

Sie können die Notwendigkeit von Optional besser verstehen, indem Sie sich auf die Seiten hier beziehen.

Recommended Posts

24 Stunden mit Android-Entwicklung zu kämpfen, Java Optional
Schreiben Sie Java Try-Catch mit Optional neu
Vergleichen Sie Java 8 Optional mit Swift
Bereiten Sie die Java-Entwicklungsumgebung mit Atom vor
Eine Reihe von Problemen in der Android Studio-Entwicklung
HTML5-Entwicklung von Java mit TeaVM
Bereiten Sie die Java-Entwicklungsumgebung mit VS Code vor
Java-Entwicklung mit Codenvy: Hello World! Run
Spieleentwicklung mit zwei Personen mit Java 2
Spieleentwicklung mit zwei Personen mit Java 1
Spieleentwicklung mit zwei Personen mit Java 3
Java-Entwicklung mit Codenvy: Konsolen-App-Debug
Java-Entwicklungstraining
[Java-Entwicklung] Java-Speicher
Java Optionaler Typ
Java 8 studieren (optional)
Java-Entwicklungsumgebung
Java SE Development Kit 8u161 - Einrichtung mit Alternativen
Android-Entwicklung app_preparation
[Java] Optionales Memorandum
Java 9 Optional :: stream
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie eine Java-Entwicklungsumgebung mit VS Code auf dem Mac
So erstellen Sie eine Java-Entwicklungsumgebung mit VS Code
Erstellen Sie eine Java-Programmentwicklungsumgebung mit Visual Studio Code
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
Erstellen Sie eine Java + Spring-Entwicklungsumgebung mit VirtualBox + Ubuntu (Xfce4).
Kompatibel mit Android 10 (API 29)
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Bequemer Download mit JAVA
Java-Dokument von Java anzeigen Optional
Plug-In-Entwicklung mit ImageJ
Java-Download mit Ansible
Zusammenfassung des Java-Entwicklungslinks
Java Entwicklungsumgebung Konstruktion
[Rails] Entwicklung mit MySQL
Lass uns mit Java kratzen! !!
Vorbereitung der Android-App-Entwicklung 7/15
[Entwicklung] Java Framework Vergleich
Erstellen Sie Java mit Wercker
Android-Entwicklungsreferenzseite
Endian-Konvertierung mit JAVA
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
So behandeln Sie Ausnahmen mit Java 8 Stream oder Optional kühl
Verwenden Sie Java, das in Android Studio enthalten ist, um React Native zu erstellen
Erstellung einer Java-Webanwendungsentwicklungsumgebung mit VS-Code (struts2)
Domänengesteuerte Entwicklung mit Java und Spring Boot-Layer und Modulabteilung
Ich habe versucht, die CameraX-Bibliothek mit Android Java Fragment zu verwenden
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code
[Aufbau einer Java-Entwicklungsumgebung] Installieren Sie OpenJDK 11 (Java 11) unter macOS mit Homebrew