Java中通过反射获取属性时遇到基本类型的问题

本文介绍了在Java框架开发中,通过反射获取实体属性时遇到的基本类型不自动装箱的问题。为了解决这个问题,作者采用了静态内部类结合类加载特性,设计了一种避免浪费Class数组的方法,实现了对基本类型的特殊处理。
摘要由CSDN通过智能技术生成

前言

最近在写框架,框架中需要通过反射获取实体的所有属性,在获取属性时,发现八大基本类型通过反射获取时,不会自动装箱,比方说int,通过反射得到的Class 是int.class而不是integer.class。

解决方式

在我的应用场景中,实体的属性极少出现八大基本类型,常出现的都是他们的包装类(Integer,Float等)。所以,我对基本类型采取了循环遍历数组的形式进行处理。这就涉及到一个Class数组,而为了避免Class数组的浪费,我采取了单例中的静态内部类的设计思想,通过JVM中类加载的特性进行了设计。代码如下:

静态内部类:

PackageBasicToClass
/**
     * 将基本类型进行装箱
     * @author 申劭明
     * @date 2019/10/4
     */
    private static class PackageBasicToClass{
        /**
         * 八大基本类型,与createModel中定义的class顺序相同
         * @see #createModel(Class)
         */
        private static Class<?>[] classes = new Class[]{int.class,long.class,float.class,double.class,
        char.class,boolean.clas
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值