判断一个对象是否是原始对象
问题:
处理 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中文网其他相关文章!