关于java:Spring-工具类之基本元素判断

58次阅读

共计 1471 个字符,预计需要花费 4 分钟才能阅读完成。

Spring 工具类之根本元素判断

理论业务开发中偶然会遇到判断一个对象是否为根本数据类型,除了咱们自老老实实的本人写之外,也能够借助 Spring 的 BeanUtils 工具类来实现

// Java 根本数据类型及包装类型判断
org.springframework.util.ClassUtils#isPrimitiveOrWrapper

// 扩大的根本类型判断
org.springframework.beans.BeanUtils#isSimpleProperty

<!– more –>

这两个工具类的实现都比拟清晰,源码看一下,可能比咱们本人实现要优雅很多

根本类型断定:ClassUtils

public static boolean isPrimitiveOrWrapper(Class<?> clazz) {Assert.notNull(clazz, "Class must not be null");
    return (clazz.isPrimitive() || isPrimitiveWrapper(clazz));
}

留神:非包装类型,间接应用 class.isPrimitive() 原生的 jdk 办法即可

包装类型,则实现应用 Map 来初始化断定


private static final Map<Class<?>, Class<?>> primitiveWrapperTypeMap = new IdentityHashMap<>(8);

static {primitiveWrapperTypeMap.put(Boolean.class, boolean.class);
    primitiveWrapperTypeMap.put(Byte.class, byte.class);
    primitiveWrapperTypeMap.put(Character.class, char.class);
    primitiveWrapperTypeMap.put(Double.class, double.class);
    primitiveWrapperTypeMap.put(Float.class, float.class);
    primitiveWrapperTypeMap.put(Integer.class, int.class);
    primitiveWrapperTypeMap.put(Long.class, long.class);
    primitiveWrapperTypeMap.put(Short.class, short.class);
    primitiveWrapperTypeMap.put(Void.class, void.class);
}


public static boolean isPrimitiveWrapper(Class<?> clazz) {Assert.notNull(clazz, "Class must not be null");
    return primitiveWrapperTypeMap.containsKey(clazz);
}

这里十分有意思的一个点是这个 Map 容器抉择了 IdentityHashMap,这个又是什么货色呢?

下篇博文认真撸一下它

II. 其余

1. 一灰灰 Blog:https://liuyueyi.github.io/he…

一灰灰的集体博客,记录所有学习和工作中的博文,欢送大家前去逛逛

2. 申明

尽信书则不如,以上内容,纯属一家之言,因集体能力无限,不免有疏漏和谬误之处,如发现 bug 或者有更好的倡议,欢送批评指正,不吝感谢

  • 微博地址: 小灰灰 Blog
  • QQ:一灰灰 /3302797840

3. 扫描关注

一灰灰 blog

正文完
 0