JAVA去除实体中类型为string的属性值中的空格
  前端传⼊的参数实体中,有时候会出现传⼊了⼀空格,导致操作失败,这时就可以利⽤java反射机制去除实体中类型为sting的属性值中的空格。 
  java代码⽰例:
1package com.spyang.util;
2
slf4j.Slf4j;
4import util.Lists;
5
6import flect.Field;
7import flect.Method;
8import java.util.List;
9
10/**
11 * 功能描述:  将类中的类型为'String'的属性值中的空格去掉
12 *
13 * @author shuangping.yang
14 * @version 1.0
15 * @ClassName BeanUtil
16 * @date 2020-9-10
17*/
18 @Slf4j
19public class TrimBeanUtil {
20
21private static final String JAVA_TYPE = "java.lang.String";
22private static final String GET = "get";
23private static final String SET = "set";
24
25/**
26    * 循环去除每个字段的空格
27    *
28    * @param bean 实体
29*/
30public static void beanAttributeValueTrim(Object bean) {
31if (bean != null) {
32//获取所有的字段包括public,private,protected,private
33            List<Field> fieldList = Class().getDeclaredFields());
34            fieldList.stream().forEach(field -> {
35//判断每个字段是否是sting类型,只有是string类型时才能去除前后空格
36if (JAVA_TYPE.Type().getName())) {
37//获取每个字段的字段名
38                    String fieldName = Name();
39try {
40//利⽤java反射机制获取对应字段的值
41                        Object value = getFieldValue(bean, fieldName);
42if (null != value) {
43// 同样利⽤java 反射机制将修改后的值进⾏赋值
44                            setFieldValue(bean, fieldName, String());
45                        }
46                    } catch (Exception e) {
47                        ("field conversion error ===>name{},msg{}", fieldName, e);
48                    }
49                }
50            });
51        }
52    }
53
54/**
55    * 利⽤反射通过get⽅法获取bean中字段fieldName的值
56    *
57    * @param bean      实体
58    * @param fieldName 字段
59    * @return object  对应值
60    * @throws Exception
61*/
62private static Object getFieldValue(Object bean, String fieldName) throws Exception {
63        Method method;
64// 获取对应字段的get⽅法名称,⾸字母改为⼤写: getName
65        StringBuffer methodName = new StringBuffer();
66        methodName.append(GET).append(fieldName.substring(0, 1).toUpperCase())
67                .append(fieldName.substring(1));
68//获取对应的⽅法
69        method = Class().String(), new Class[0]);
字符串转数组去除空格70return method.invoke(bean);
71    }
72
73/**
74    * 利⽤发射调⽤bean.set⽅法将value设置到字段
75    *
76    * @param bean      实体
77    * @param fieldName  字段
78    * @param fieldValue 赋值
79    * @throws Exception
80*/
81private static void setFieldValue(Object bean, String fieldName, String fieldValue) throws Exception {
82        Class[] classArr = new Class[1];
83        StringBuffer methodName = new StringBuffer();
84// 获取对应字段的set⽅法名称,⾸字母改为⼤写:setName
85        methodName.append(SET).append(fieldName.substring(0, 1).toUpperCase())
86                .append(fieldName.substring(1));
87//利⽤发射调⽤bean.set⽅法将value设置到字段
88        classArr[0] = Class();
89        Method method = Class().String(), classArr);
90        method.invoke(bean, im());
91    }
92 } 
package iy;
/**
* @author shuangping.yang
* @version 1.0
* @ClassName Demo
* @date 2020.09.10 上午 11:37
*/
public class Demo {
private String name;
private String gender;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "Demo{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
'}';
}
}
实体类
1public static void main(String[] args) {
2        Demo demo = new Demo();
3        demo.setName(" shuangping.yang\t ");
4        demo.setGender(" 男 ");
5        demo.setAge(20);
6        beanAttributeValueTrim(demo);
7        System.out.println("实体:" + String());
8    }
例⼦
以上是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望能得到⼤家⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。