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);
} }

java 对象参数去空格方式的更多相关文章

  1. JNI_Z_08_创建Java对象

    1.步骤 : (1).获取 jclass (2).获取 构造函数的 method id (方法的名称始终为"<init>") (3).创建Java对象的两种方式: (3 ...

  2. JAXB实现java对象与xml之间转换

    JAXB简介: 1.JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标 ...

  3. 总结学习! xml与java对象转换 --- JDK自带的JAXB(Java Architecture for XML Binding)

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...

  4. Java对象表示方式1:序列化、反序列化和transient关键字的作用

    平时我们在Java内存中的对象,是无法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即存储对象中的状态.一 ...

  5. 015-线程同步-synchronized几种加锁方式、Java对象头和Monitor、Mutex Lock、JDK1.6对synchronized锁的优化实现

    一.synchronized概述基本使用 为确保共享变量不会出现并发问题,通常会对修改共享变量的代码块用synchronized加锁,确保同一时刻只有一个线程在修改共享变量,从而避免并发问题. syn ...

  6. Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class<T> java.lang.reflect.Constructor<T> java.lang.reflect.Fi ...

  7. 深入理解java虚拟机(二)HotSpot Java对象创建,内存布局以及访问方式

    内存中对象的创建.对象的结构以及访问方式. 一.对象的创建 在语言层面上,对象的创建只不过是一个new关键字而已,那么在虚拟机中又是一个怎样的过程呢? (一)判断类是否加载.虚拟机遇到一条new指令的 ...

  8. Java中创建(实例化)对象的五种方式

    Java中创建(实例化)对象的五种方式1.用new语句创建对象,这是最常见的创建对象的方法. 2.通过工厂方法返回对象,如:String str = String.valueOf(23); 3.运用反 ...

  9. Java反射获取class对象的三种方式,反射创建对象的两种方式

    Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...

随机推荐

  1. java--String与int相互转换

    字符串与int类型的互相转换 String ---> int //方式一:Integer(String s) //demo: Integer i = new Integer("10&q ...

  2. SharePoint Rest Api Caml multiple condition query -Rest api 利用Caml多个条件查询

    $.ajax({ var cquery="<View><Query><Where><And><Geq><FieldRef N ...

  3. 【转载】Gradle学习 第一章:引言

    转载地址:http://ask.android-studio.org/?/article/7 We would like to introduce Gradle to you, a build sys ...

  4. java随机数获取

    /**Number One: * 随机数获取公式:(数据类型)(最小值+Math.random()*(最大值-最小值+1)) * 随机数获取公式:(类型)最小值+Math.random()*最大值 * ...

  5. Linux的httpd服务搭建

    在服务搭建前,还要了解一下httpd的日志. 日志有助有工作人员,查看服务器出错状况,更能统计数据分析网页运行情况. PV和UV两大分析 PV  Page View 页面访问量 UV  User Vi ...

  6. Websocket --socket.io的用法

    <!DOCTYPE html> <html> <head> <title>Hello WebSocket</title> <link ...

  7. acwing 算法面试、笔试题公开课整理记录

    week1 Google KickStart 2019 A轮 讲解视频地址AcWing 549. 训练   tag: 排序 遍历 在线练习地址AcWing 550. 包裹       在线练习地址Ac ...

  8. tomcat启动后,跳转到项目指定页面

  9. mybatis学习3

    parameterType(输入类型) 传递简单类型::使用#{}占位符,或者${}进行sql拼接 传递pojo对象: Mybatis使用ognl表达式解析对象字段的值,#{}或者${}括号中的值为p ...

  10. selenium--拖拽页面元素

    from selenium import webdriver import unittest from selenium.webdriver import ActionChains import ti ...