Object[] 配列内のプリミティブ値を識別する方法

DDD
リリース: 2024-11-03 10:25:29
オリジナル
910 人が閲覧しました

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

オブジェクトがプリミティブかどうかの判断

質問:
Object[] 配列を扱う場合、どの要素がプリミティブ値を表すかをどのように特定できるでしょうか? Class.isPrimitive() を使用すると、間違った結果が得られるようです。

答え:
Object[] 配列内の要素がオブジェクトへの参照であることを理解すると、Class.isPrimitive() がクラスであることが明らかになります。 isPrimitive() は常に false を返します。オブジェクトが「プリミティブのラッパー」(たとえば、int の Integer) であるかどうかを判断するには、カスタム アプローチが必要です。

解決策を示す Java コード スニペットは次のとおりです。

<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>
ログイン後にコピー

このアプローチを利用すると、Object[] 配列内のオブジェクトがプリミティブ値を表すか、プリミティブ値のラッパー クラスを表すかを正確に判断できます。

以上がObject[] 配列内のプリミティブ値を識別する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート