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小时内删除。
发表评论