zoukankan      html  css  js  c++  java
  • java 对象参数去空格方式

    import java.lang.reflect.Field;
    import java.lang.reflect.Method;
    
    public class Test {
    
        /**
         * 去掉bean中所有属性为字符串的前后空格
         *
         * @param bean
         * @throws Exception
         */
        public static void beanAttributeValueTrim(Object bean) throws Exception {
            if (bean != null) {
                //获取所有的字段包括public,private,protected,private
                Field[] fields = bean.getClass().getDeclaredFields();
                for (int i = 0; i < fields.length; i++) {
                    Field f = fields[i];
                    if (f.getType().getName().equals("java.lang.String")) {
                        String key = f.getName();
                        //获取字段名
                        Object value = getFieldValue(bean, key);
    
                        if (value == null)
                            continue;
    
                        setFieldValue(bean, key, value.toString().trim());
                    }
                }
            }
        }
    
        /**
         * 利用反射通过get方法获取bean中字段fieldName的值
         *
         * @param bean
         * @param fieldName
         * @return
         * @throws Exception
         */
        private static Object getFieldValue(Object bean, String fieldName)
                throws Exception {
            StringBuffer result = new StringBuffer();
            String methodName = result.append("get")
                    .append(fieldName.substring(0, 1).toUpperCase())
                    .append(fieldName.substring(1)).toString();
    
            Object rObject = null;
            Method method = null;
    
            @SuppressWarnings("rawtypes")
            Class[] classArr = new Class[0];
            method = bean.getClass().getMethod(methodName, classArr);
            rObject = method.invoke(bean, new Object[0]);
    
            return rObject;
        }
    
        /**
         * 利用发射调用bean.set方法将value设置到字段
         *
         * @param bean
         * @param fieldName
         * @param value
         * @throws Exception
         */
        private static void setFieldValue(Object bean, String fieldName, Object value)
                throws Exception {
            StringBuffer result = new StringBuffer();
            String methodName = result.append("set")
                    .append(fieldName.substring(0, 1).toUpperCase())
                    .append(fieldName.substring(1)).toString();
    
            //利用反射调用bean.set方法将value设置到字段
            @SuppressWarnings("rawtypes")
            Class[] classArr = new Class[1];
            classArr[0] = "java.lang.String".getClass();
            Method method = bean.getClass().getMethod(methodName, classArr);
            method.invoke(bean, value);
        }
    
    }
  • 相关阅读:
    数据结构小总结(成都磨子桥技工学校数据结构前12题)
    Scrum 冲刺博客第二篇
    Scrum 冲刺博客第一篇
    centos部署keepalived服务
    第四周作业
    Svelte 中怎样做双向数据绑定
    Svelte 中多层组件事件转发
    Svelte 中的事件修饰符
    怎样在 Svelte 中设置自定义事件
    怎样使用 Svelte 中的异步块
  • 原文地址:https://www.cnblogs.com/huzi007/p/11586093.html
Copyright © 2011-2022 走看看