Java 小记

判断是否是简单类型
使用Spring中的BeanUtils,可以自行查看源码。

Boolean isSimpleType = BeanUtils.isSimpleValueType(value.getClass());

实际应用

private void resolveKeyNames(Object obj, List<String> headerNames,
                                 List<String> keys) throws IllegalAccessException {
        if (obj == null) return;
        Field[] fields = obj.getClass().getDeclaredFields();
        for (Field field : fields) {
            field.setAccessible(true);
            String fieldName = field.getName();
            Object value = field.get(obj);
            if (value != null) {
                // 判断value是否是简单类型
                Boolean isSimpleType = BeanUtils.isSimpleValueType(value.getClass());
                if (isSimpleType) {
                    String headerName = value.toString();
                    headerNames.add(headerName);
                    String key = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName);
                    keys.add(key);
                }
            }
        }
    }

判断某个对象是否是某个类或其子类的实例
Class类中public native boolean isAssignableFrom(Class<?> cls);

com.example.ParentClass.class.isAssignableFrom(ChildClass));

实际应用:java.sql.Date,java.sql.Timestamp都是java.util.Date的子类,
如果不是isAssignableFrom方法,可能需要如下写法:

if(value.getClass() == java.util.Date.class || value.getClass() == java.sql.Date.class || value.getClass() == java.sql.Timestamp.class) {
        ....
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光剑书架上的书阅读 3,967评论 2 8
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,780评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,014评论 19 139
  • “妈妈、妈妈,快帮我装壶水”坐在那看课外书的大宝叫着。好呢!我忙着洗水壶,装水,擦水壶。最后把水壶放在正在看课外书...
    李敏0814阅读 200评论 0 0
  • 休沐辰良鸟语枝,临窗睡起日迟迟。 学来人境无忧事,偷得劳生少逸时。 伏案挥毫临晋帖,敲床披卷读唐诗。 若非炉上粥糜...
    泓颖阅读 207评论 2 5