1. 程式人生 > >關於使用Spring的BeanUtils複製屬性時Boolean型別無法複製的問題

關於使用Spring的BeanUtils複製屬性時Boolean型別無法複製的問題

開發十年,就只剩下這套架構體系了! >>>   

spring-beans版本5.0.12

JDK版本1.8.0_181

 

使用BeanUtils.copyProperties(Object source, Object target)進行屬性複製時,遇到了Boolean型別無法複製的問題,一步步的跟進了java的rt.jar包中的Instrospector類中,發現第513行只認boolean型別

if (argCount == 0) {
                        if (name.startsWith(GET_PREFIX)) {
                            // Simple getter
                            pd = new PropertyDescriptor(this.beanClass, name.substring(3), method, null);
                        } else if (resultType == boolean.class && name.startsWith(IS_PREFIX)) {
                            // Boolean getter
                            pd = new PropertyDescriptor(this.beanClass, name.substring(2), method, null);
                        }
                    }

所以,是不支援Boolean型別的複製,只支援b