Maison > Java > javaDidacticiel > Comment déterminer si un objet est de type primitif en Java ?

Comment déterminer si un objet est de type primitif en Java ?

DDD
Libérer: 2024-10-31 21:15:29
original
422 Les gens l'ont consulté

How to Determine if an Object is of Primitive Type in Java?

Déterminer si un objet est de type primitif

Lorsque vous travaillez avec des tableaux d'objets, il peut être nécessaire de déterminer quels objets sont de types primitifs . En essayant d'utiliser la méthode Class.isPrimitive(), certains utilisateurs peuvent rencontrer de faux résultats en raison de l'auto-boxing.

Comprendre l'auto-boxing

L'auto-boxing est une fonctionnalité de Java qui convertit automatiquement les valeurs primitives en classes wrapper correspondantes lorsqu'elles sont utilisées comme objets. Par exemple, l'int primitif est automatiquement converti en sa classe wrapper, Integer.

Approche correcte

Pour déterminer avec précision si un objet est de type primitif, il est nécessaire pour vérifier si son type est un "wrapper pour primitive" au lieu d'utiliser Class.isPrimitive(). Ceci peut être réalisé en comparant la classe de l'objet avec un ensemble de classes wrapper connues.

Personnalisation pour des types spécifiques

L'extrait de code suivant inclut une méthode utilitaire, isWrapperType, qui peut être utilisé pour déterminer si le type d'un objet est un type wrapper. Il compare la classe de l'objet à un ensemble prédéfini de classes wrapper et renvoie un résultat booléen.

<code class="java">import java.util.*;

public class Test {
    public static void main(String[] args) {
        System.out.println(isWrapperType(String.class));
        System.out.println(isWrapperType(Integer.class));
    }

    private static final Set<Class<?>> WRAPPER_TYPES = getWrapperTypes();

    public static boolean isWrapperType(Class<?> clazz) {
        return WRAPPER_TYPES.contains(clazz);
    }

    private static Set<Class<?>> getWrapperTypes() {
        Set<Class<?>> ret = new HashSet<>();
        ret.add(Boolean.class);
        ret.add(Character.class);
        ...
        return ret;
    }
}</code>
Copier après la connexion

Conclusion

En utilisant cette approche personnalisée, les développeurs peuvent déterminer avec précision si un objet dans un tableau Object[] est d'un type primitif, en tenant compte des effets de l'auto-boxing.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal