Maison >Java >javaDidacticiel >Comment déterminer si un objet dans un tableau est un type wrapper pour une primitive ?

Comment déterminer si un objet dans un tableau est un type wrapper pour une primitive ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-01 10:36:30823parcourir

How to Determine if an Object in an Array is a Wrapper Type for a Primitive?

Comment identifier les types primitifs dans un tableau d'objets

En Java, déterminer si un objet est de type primitif à l'aide de Class.isPrimitive() peut être trompeur. En effet, les objets d'un tableau sont des références aux valeurs réelles.

Pour déterminer avec précision si un objet est primitif, nous devons vérifier si son type est un wrapper pour un type primitif. Le JDK ne fournit pas de méthode intégrée pour cela, mais nous pouvons en créer une personnalisée :

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

Cette méthode personnalisée, isWrapperType(), crée un ensemble de types de wrapper primitifs et vérifie si le la classe donnée correspond à n’importe lequel d’entre eux. Cette approche garantit une identification précise des types primitifs dans un tableau Object[].

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