Heim  >  Artikel  >  Java  >  Wie kann man in Java feststellen, ob ein Objekt vom primitiven Typ ist?

Wie kann man in Java feststellen, ob ein Objekt vom primitiven Typ ist?

DDD
DDDOriginal
2024-10-31 21:15:29312Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn