Déterminer si un objet est primitif : utilisation de la détection de type de wrapper
En Java, un objet peut envelopper des valeurs primitives via l'auto-boxing. Pour différencier les vrais types primitifs des primitives encadrées, une approche spécifique est nécessaire.
Vérification des types primitifs à l'aide de Class.isPrimitive()
Le Class.isPrimitive() La méthode ne convient pas à cet effet. Les types primitifs sont représentés sous forme de références à leurs classes wrapper (par exemple, un objet Integer pour int).
Méthode alternative : identification des types wrapper
La solution consiste à déterminer si un le type de l'objet est un wrapper pour un type primitif. Bien que les bibliothèques Java manquent de fonctionnalités intégrées pour cela, elles peuvent être facilement implémentées :
<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>
Utilisation : La méthode fournie isWrapperType prend un objet Class comme argument et renvoie true s'il est un wrapper pour un type primitif, et false sinon.
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!