Bestimmen, ob ein Objekt vom primitiven Typ ist
Beim Arbeiten mit Arrays von Objekten kann es notwendig sein, zu bestimmen, welche Objekte primitive Typen sind . Beim Versuch, die Methode Class.isPrimitive() zu verwenden, kann es bei einigen Benutzern aufgrund von Auto-Boxing zu falschen Ergebnissen kommen.
Auto-Boxing verstehen
Auto-Boxing ist eine Funktion in Java, die primitive Werte automatisch in ihre entsprechenden Wrapper-Klassen konvertiert, wenn sie als Objekte verwendet werden. Beispielsweise wird das primitive int automatisch in seine Wrapper-Klasse Integer konvertiert.
Richtiger Ansatz
Um genau zu bestimmen, ob ein Objekt vom primitiven Typ ist, ist es notwendig um zu prüfen, ob sein Typ ein „Wrapper für Primitive“ ist, anstatt Class.isPrimitive() zu verwenden. Dies kann erreicht werden, indem die Klasse des Objekts mit einer Reihe bekannter Wrapper-Klassen verglichen wird.
Anpassen für bestimmte Typen
Der folgende Codeausschnitt enthält eine Dienstprogrammmethode, isWrapperType, Dies kann verwendet werden, um zu bestimmen, ob der Typ eines Objekts ein Wrapper-Typ ist. Es vergleicht die Klasse des Objekts mit einem vordefinierten Satz von Wrapper-Klassen und gibt ein boolesches Ergebnis zurück.
<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>
Fazit
Durch die Verwendung dieses benutzerdefinierten Ansatzes können Entwickler Bestimmen Sie unter Berücksichtigung der Auswirkungen von Auto-Boxing genau, ob ein Objekt innerhalb eines Object[]-Arrays von einem primitiven Typ ist.
Das obige ist der detaillierte Inhalt vonWie kann man in Java feststellen, ob ein Objekt vom primitiven Typ ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!