オブジェクトがプリミティブかどうかの判断: ラッパー型検出の使用
Java では、オブジェクトはオートボックス化を通じてプリミティブ値をラップできます。真のプリミティブ型とボックス化されたプリミティブを区別するには、特定のアプローチが必要です。
Class.isPrimitive() を使用したプリミティブ型のチェック
Class.isPrimitive()この方法はこの目的には適していません。プリミティブ型は、ラッパー クラスへの参照として表されます (例: 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>
Usage: 提供されたメソッド isWrapperType は引数として Class オブジェクトを受け取り、クラス オブジェクトが引数である場合は true を返します。プリミティブ型のラッパーであり、それ以外の場合は false です。
以上がJava でオブジェクトがプリミティブ型をラップしているかどうかを判断するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。