利用反射自动封装成实体对象

利用此方法的时候需要传递的参数的名称,必须以行号结尾,去掉行号就是属性名称,比如页面传递name+rowNo,那么实体对象的属性名应该为name。代码如下

//获取页面数据,自动封装成bean对象
	public List getObjectList(Class clazz,String[] rowNos) throws Exception{
		List objList = new ArrayList();
		for(int i=0;rowNos!=null && i<rowNos.length;i++){
			//创建对象实例
			Object object = clazz.newInstance();
			//获取类声明的属性
			Field[] fields = clazz.getDeclaredFields();

			StringBuffer buffer = null;
			//遍历属性,执行封装
			for(int j=0;j<fields.length;j++){
				//获取属性的名字
				String fieldName = fields[j].getName();
				//得到参数的名字
				String paraName = fields[j].getName()+rowNos[i];

				//如果获取参数值为空则继续循环
				String value = getValueNull(paraName);
				if(value==null){
					continue;
				}

		        //参数值
				Object[] paramValue =new Object[1];
				if(fields[j].getType().toString().equals("class java.lang.String")){
					paramValue[0]=value;
				}
				if(fields[j].getType().toString().equals("class java.lang.Integer")){
					paramValue[0]=new Integer(value);
				}
				if(fields[j].getType().toString().equals("class java.lang.Double")){
					paramValue[0]=new Double(value);
				}
				if(fields[j].getType().toString().equals("class java.util.Date")){
					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
					paramValue[0]=sdf.parse(value);
				}

				//参数类型
				Class[] paramType= {fields[j].getType()}; 

				//得到set方法的名字
				buffer = new StringBuffer("set");
		        buffer.append(fieldName.substring(0, 1).toUpperCase());
		        buffer.append(fieldName.substring(1));
		        //获取放回
		        Method method = clazz.getDeclaredMethod(buffer.toString(), paramType);
		        //执行方法
		        method.invoke(object,paramValue);
			}
			//将当前对象放到list中
			objList.add(object);
		}
		return objList;
	}
时间: 2024-08-27 01:10:46

利用反射自动封装成实体对象的相关文章

使用jquery将表单自动封装成json对象 /json对象元素的添加删除和转换

$.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.v

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理

利用反射和泛型把Model对象按行储存进数据库以及按行取出然后转换成Model 类实例 MVC网站通用配置项管理 2018-3-10 15:18 | 发布:Admin | 分类:代码库 | 评论:0 | 浏览:45 | 该类在MVC中可以方便管理配置信息,可以直接把Model储存进数据库或者从数据库去除数据转为Model. 1 何为配置项目? 比如网站的名称,页脚信息,meta中的KeyWord信息等,如果不想硬编码到网页里,就需要使用配置文件进行储存,通常都是储存到数据库中.使用的时候读取出来

WebApi系列~FromUri参数自动解析成实体的要求

回到目录 关于webapi我之前写了一些文章,大家可以根据目录去浏览,今天要说的是个怪问题,也是被我忽略的一个问题,当你的Url参数需要被Api自动解析成实体的属性,实事上是要有条件的,不是所以属性都可以被自动赋值的,下面我们就来看看先决条件: 条件一:类属性名称必须和参数名称相同 条件二:API参数必须以[FromUri]来修饰 条件三:属性类型为“类”的,如果使用类名(导航属性在本类的名称,可以不是类的原名).属性名的形式,例如Page.PageIndex 条件四:属性类型为“数组,集合”时

(原)编写JAVA工具之json自动封装成pojo

代码在最后 我个人是不太喜欢http和json,可能是游戏做的多了的原因的,对通信协议和通信方式特敏感,因此即使是做应用我也会选择rpc而非http,但是有时候因为各种原因,还是不的不处理标准的http+json的东西. 这一次也确实需要处理一大串json,就是将一大堆的json转换成标准的java pojo.也许小json串我们可以直接用JSONObject去提值就行了,但是如果json是这样: 一个拥有近百个不一样的字段的pojo,如果我们需要单独的去取值估计会疯掉,这还不是主要的,更蛋疼的

从数据库读取数据后利用反射为对应的实体类的属性赋值

1.连接数据库并关闭连接(jdbctools.java) package com.xiaojie.dao; import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.

利用反射机制创建类的对象

第一步:创建要反射的类的字节码文件对象,其实就是创建了Class类的对象(一共有三种方法) 方式一:通过对对象获取字节码文件对象 例如:Person p = new Person(); Class c1 = p.getclass(); //Object类中的方法:public final Class<?> getClass()返回此 Object 的运行时类. 方式二:任意数据类型都具备一个class静态属性. Class c2 = Person.class; 方式三:调用Class类中的静态

POI 导入excel数据自己主动封装成model对象--代码分析

上完代码后,对代码进行基本的分析: 1.主要使用反射api将数数据注入javabean对象 2.代码中的日志信息级别为debug级别 3.获取ExcelImport对象后须要调用init()方法初始化数据信息 4.推断单元格类型.主要难点为日期类型的推断,假设对poi的API不是非常熟悉可能会有点难下面手(我也是百度的.) String value = null; switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_BOOLEAN: val

jdbcTemplate query 将查询到的List自动影射成实体List

Spring API Doc的说明如下: RowMapper implementation that converts a row into a new instance of the specified mapped target class. The mapped target class must be a top-level class and it must have a default or no-arg constructor. Column values are mapped b

ObjC 利用反射和KVC实现嵌套对象序列化成JSON数据

原理: 0.创建一个新的可变字典:NSMutableDictionary 1.采用class_copyPropertyList函数遍历对象的属性 2.property_getName获取属性名,valueForKey获取属性内容. 3.判断该属性内容的Class: (1)假如为基础类型(NSString,NSNumber,NSNull),则直接返回,跳转到4操作. (2)假如为数组类型,先创建新的可变数组,再遍历旧数组中的内容,判断内容类型,重复3进行递归操作,直到找到基础类型.  通过setO