24 heures de difficulté avec le développement Android, Java en option

Face à Java en option

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.

Préparation à l'utilisation en option

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.

Déclarons facultatif en Java

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.

Comment utiliser réellement les variables facultatives

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).

Concepts faciles à apprendre après avoir maîtrisé l'utilisation Facultatif

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.

Page de référence

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

24 heures de difficulté avec le développement Android, Java en option
Réécrire Java try-catch avec facultatif
Comparez Java 8 en option avec Swift
Préparer l'environnement de développement Java avec Atom
Une série de problèmes dans le développement de studios Android
Développement HTML5 par Java avec TeaVM
Préparer l'environnement de développement Java avec VS Code
Développement Java avec Codenvy: Hello World! Run
Développement de jeux avec deux personnes utilisant java 2
Développement de jeux avec deux personnes utilisant java 1
Développement de jeux avec deux personnes utilisant java 3
Développement Java avec Codenvy: débogage de l'application console
Formation au développement Java
[Développement Java] Mémoire Java
Java Type facultatif
Étudier Java 8 (facultatif)
Environnement de développement Java
Kit de développement Java SE 8u161 - configuration avec alternatives
Développement Android app_preparation
[Java] Mémorandum facultatif
Java 9 Facultatif :: stream
Créer un environnement de développement Java avec VS Code
Créer un environnement de développement Java avec VS Code sur Mac
Comment créer un environnement de développement Java avec VS Code
Créer un environnement de développement de programme Java avec Visual Studio Code
[Java] Développement avec plusieurs fichiers en utilisant package et import
Créer un environnement de développement Java + Spring avec VirtualBox + Ubuntu (Xfce4)
Compatible avec Android 10 (API 29)
Changer de siège avec Java
Installez Java avec Ansible
Téléchargement confortable avec JAVA
Afficher la documentation Java de Java Facultatif
Développement de plug-in avec ImageJ
Téléchargement Java avec Ansible
Résumé du lien de développement Java
construction d'environnement de développement Java
[Rails] Développement avec MySQL
Raclons avec Java! !!
Préparation au développement d'applications Android 7/15
[Développement] Comparaison du framework Java
Construire Java avec Wercker
Site de référence de développement Android
Conversion Endian avec JAVA
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
Comment gérer les exceptions froidement avec Java 8 Stream ou en option
Utilisez Java inclus avec Android Studio pour créer React Native
Construction d'environnement de développement d'applications Web Java avec VS Code (struts2)
Développement piloté par domaine avec Java et Spring Boot-Layer et division de modules
J'ai essayé d'utiliser la bibliothèque CameraX avec Android Java Fragment
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
[Construction de l'environnement de développement Java] Installez OpenJDK 11 (Java 11) sur macOS avec Homebrew