Table des matières
1. Introduction
2. Jugement vide de List
3. Jugement nul de chaîne
Maison Java javaDidacticiel Comment implémenter un jugement vide en Java

Comment implémenter un jugement vide en Java

May 13, 2023 pm 04:34 PM
java

    1. Introduction

    Dans les projets réels, nous aurons de nombreux endroits où une vérification nulle est nécessaire. Si la vérification nulle n'est pas effectuée, NullPointerException peut se produire.

    Jetons d'abord un coup d'œil à quelques méthodes de jugement nul dans des projets réels

    Comment implémenter un jugement vide en Java

    if (ObjectUtil.isNotNull(vo.getSubmitterId())) {
        userIds.add(vo.getSubmitterId());
    }
    if (StringUtils.isNotBlank(vo.getBudgetPM())) {
        userIds.add(Long.valueOf(vo.getBudgetPM()));
    }
    if (CollUtil.isNotEmpty(vo.getOriginatorList())) {
        userIds.addAl1(vo.getOriginatorList().stream();
    }
    Copier après la connexion

    Habituellement, nous jugeons si un objet est nul, vous pouvez utiliser Objects.nonNull(obj) dans java.util, ObjectUtil dans hutool ou directement null ! = obj

    2. Jugement vide de List

    Les éléments spéciaux comme List ne peuvent pas seulement juger non vide dans le projet. Pour List, il n'est pas égal à null et List.size() n'est pas égal à 0. Ce sont deux choses différentes. Les stagiaires de l'entreprise confondent souvent ces deux-là. Si list n'est pas égal à null, cela signifie qu'il l'a été. initialisé et il y a un morceau de mémoire tas qui lui appartient. Le site, et une taille de 0 signifie que rien n'y a été mis. Par exemple, s'il n'est pas égal à null, cela signifie que j'ai maintenant une bouteille. . Si la taille est supérieure à 0, cela signifie que j'ai rempli la bouteille d'eau.

    Dans les projets réels, on constate également que list.isEmpty() est utilisé pour juger directement. Jetons un coup d'œil au code source :

    public boolean isEmpty() {
        return size == 0;
    }
    Copier après la connexion

    Cela équivaut à juger s'il y a de l'eau dans la bouteille (à condition que la bouteille soit remplie d'eau). la bouteille existe déjà, si la bouteille n'existe pas, elle sera levée. Une exception NullPointerException se produit).

    Donc, généralement list != null && list.size > 0 est utilisé pour juger, ou utilise directement isEmpty de l'outil CollUtil dans HuTool. Il existe également Set, Map, etc.

    3. Jugement nul de chaîne

    Ici, nous utilisons toujours les concepts de bouteilles et d'eau Lorsque String est nul, l'appel de equals(String) ou length() et d'autres opérations lancera Java. lang.NullPointerException.

    Comment implémenter un jugement vide en Java

    Il existe les méthodes suivantes pour vérifier la valeur nulle d'une chaîne :

    1 L'une des méthodes utilisées par la plupart des gens est intuitive, pratique, mais inefficace :

    if(a == null. || a.equals(""));if(a == null || a.equals(""));

    2、比较字符串长度,高效:

    if(a == null || a.length() == 0);

    3、Java SE 6.0 才刚刚开始提供,效率和方法二差不多:

    if(a == null || a.isEmpty());

    2. Comparez les longueurs de chaîne, efficacement :

    if(a == null || a.length() == 0);

    3. Java SE 6.0 vient de commencer à être fourni, et l'efficacité est presque la même que celle de la deuxième méthode :

    if(a == null || a.isEmpty());

    Bien sûr, vous pouvez également utiliser l'outil org .apache.commons.lang.StringUtils.

    StringUtils.isNotBlank(a);

    * StringUtils.isNotBlank(null) = false

    * StringUtils.isNotBlank("") = false

    * StringUtils.isNotBlank(" ") = false

    * StringUtils .isNotBlank("bob") = true

    * StringUtils.isNotBlank(" bob ") = true

    Il existe également une méthode isNotEmpty() dans cette classe d'outils. La différence entre les deux est clairement visible dans les commentaires

    .

    StringUtils.isNotEmpty(a);

    * StringUtils.isNotEmpty(null) = false

    * StringUtils.isNotEmpty("") = false

    * StringUtils.isNotEmpty(" ") = true

    * StringUtils. isNotEmpty( "bob") = true
    • * StringUtils.isNotEmpty(" bob ") = true

      4 Facultatif
    • Facultatif apparaît pour empêcher NullpointException. Les méthodes courantes sont :

    • .empty() : Créer une instance facultative vide

    • .of(T t) : Créer une instance facultative et déclencher une exception pour null

    • .ofNullable(T t) : Si t n'est pas nul, créez une instance facultative, sinon créez une instance vide

    • isPresent() : Détermine s'il y a une valeur dans le conteneur

    • ifPresent(Consume lambda) : Si le conteneur n'est pas vide, exécuter le Lambda entre parenthèses Expression

    • orElse(T t) : Récupère l'élément dans le conteneur, si le conteneur est vide, renvoie la valeur par défaut entre parenthèses

    • orElseGet(Supplier s) : Si l'appelant L'objet contient une valeur, renvoie la valeur, sinon renvoie la valeur obtenue par s

    • orElseThrow() : S'il est vide, renvoie l'exception définie. S'il n'est pas vide, renvoie l'objet actuel

    • map(. Fonction f) : S'il y a une valeur, traitez-la et renvoyez Le traité Facultatif, sinon retournez Optionnel.empty()

    flatMap(Function mapper) : Semblable à la carte, la valeur de retour doit être Facultative

    T get() : récupère les éléments dans le conteneur, si le conteneur est vide, une exception NoSuchElement sera levée

    Regardons d'abord un exemple courant :

    Il y a un attribut de type booléen dans baseInfo. classe. S'il est vide, il renvoie false. S'il n'est pas vide, il prend sa valeur, ce qui nécessite quatre lignes.

    boolean blind = false;
    if (null != baseInfo.getBlind()){
        blind = baseInfo.getBlind();
    }
    Copier après la connexion

    Lors de l'utilisation d'Optional, cela peut être fait en une seule ligne, très élégant.

    boolean blind = Optional.ofNullable(baseInfo.getBlind()).orElse( other: false);
    Copier après la connexion

    4.1 Création d'objets facultatifs🎜
    public final class Optional<T> {
        private static final Optional<?> EMPTY = new Optional<>();
        private final T value;
        //可以看到两个构造方格都是private 私有的
        //说明 没办法在外面new出来Optional对象
        private Optional() {
            this.value = null;
        }
        private Optional(T value) {
            this.value = Objects.requireNonNull(value);
        }
        //这个静态方法大致 是创建出一个包装值为空的一个对象因为没有任何参数赋值
        public static<T> Optional<T> empty() {
            @SuppressWarnings("unchecked")
            Optional<T> t = (Optional<T>) EMPTY;
            return t;
        }
        //这个静态方法大致 是创建出一个包装值非空的一个对象 因为做了赋值
        public static <T> Optional<T> of(T value) {
            return new Optional<>(value);
        }
        //这个静态方法大致是 如果参数value为空,则创建空对象,如果不为空,则创建有参对象
        public static <T> Optional<T> ofNullable(T value) {
            return value == null ? empty() : of(value);
        }
    }
    Copier après la connexion
    🎜4.2 Scénarios d'utilisation🎜🎜Scénario 1 : interroger un objet dans la couche de service, et après l'avoir renvoyé, déterminer s'il est vide et le traiter🎜
    Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
    Optional.ofNullable(task).orElseThrow(() -> new ProcessException(ErrorCodeEnum,SYSIEM ERROR));
    Copier après la connexion
    🎜Scénario 2 : Utilisation facultative et fonctionnelle programmation, une ligne Terminé 🎜
    Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
    Map<String,String> map = new HashMap<>( initialCapacity: 8);
    Optional.ofNullable(task).ifPresent(d -> map.put("taskId",d.getTaskDefinitionKey()));
    Copier après la connexion

    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!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    Video Face Swap

    Video Face Swap

    Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Numéro de Smith en Java Numéro de Smith en Java Aug 30, 2024 pm 04:28 PM

    Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

    Questions d'entretien chez Java Spring Questions d'entretien chez Java Spring Aug 30, 2024 pm 04:29 PM

    Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

    Break or Return of Java 8 Stream Forach? Break or Return of Java 8 Stream Forach? Feb 07, 2025 pm 12:09 PM

    Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

    Horodatage à ce jour en Java Horodatage à ce jour en Java Aug 30, 2024 pm 04:28 PM

    Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

    Programme Java pour trouver le volume de la capsule Programme Java pour trouver le volume de la capsule Feb 07, 2025 am 11:37 AM

    Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

    PHP vs Python: comprendre les différences PHP vs Python: comprendre les différences Apr 11, 2025 am 12:15 AM

    PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

    PHP: un langage clé pour le développement Web PHP: un langage clé pour le développement Web Apr 13, 2025 am 12:08 AM

    PHP est un langage de script largement utilisé du côté du serveur, particulièrement adapté au développement Web. 1.Php peut intégrer HTML, traiter les demandes et réponses HTTP et prend en charge une variété de bases de données. 2.PHP est utilisé pour générer du contenu Web dynamique, des données de formulaire de traitement, des bases de données d'accès, etc., avec un support communautaire solide et des ressources open source. 3. PHP est une langue interprétée, et le processus d'exécution comprend l'analyse lexicale, l'analyse grammaticale, la compilation et l'exécution. 4.PHP peut être combiné avec MySQL pour les applications avancées telles que les systèmes d'enregistrement des utilisateurs. 5. Lors du débogage de PHP, vous pouvez utiliser des fonctions telles que error_reportting () et var_dump (). 6. Optimiser le code PHP pour utiliser les mécanismes de mise en cache, optimiser les requêtes de base de données et utiliser des fonctions intégrées. 7

    Créer l'avenir : programmation Java pour les débutants absolus Créer l'avenir : programmation Java pour les débutants absolus Oct 13, 2024 pm 01:32 PM

    Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.

    See all articles