Maison  >  Article  >  Java  >  Comment identifier les valeurs primitives dans un tableau Object[] ?

Comment identifier les valeurs primitives dans un tableau Object[] ?

DDD
DDDoriginal
2024-11-03 10:25:29851parcourir

How to Identify Primitive Values in an Object[] Array?

Déterminer si un objet est primitif

Question :
Lorsqu'il s'agit d'un tableau Object[], comment pouvez-vous identifier quels éléments représentent des valeurs primitives ? L'utilisation de Class.isPrimitive() semble donner des résultats incorrects.

Réponse :
Comprenant que les éléments d'un tableau Object[] sont des références à des objets, il devient clair que Class. isPrimitive() renverra toujours false. Pour déterminer si un objet est un « wrapper pour primitive » (par exemple, Integer pour int), une approche personnalisée est nécessaire.

Voici un extrait de code Java qui illustre une solution :

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

public class Test {

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

    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);
        ret.add(Byte.class);
        ret.add(Short.class);
        ret.add(Integer.class);
        ret.add(Long.class);
        ret.add(Float.class);
        ret.add(Double.class);
        ret.add(Void.class);
        return ret;
    }
}</code>

En utilisant cette approche, vous pouvez déterminer avec précision si un objet dans un tableau Object[] représente une valeur primitive ou une classe wrapper pour une valeur primitive.

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:
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