您当前的位置: 首页 > 

Jave.Lin

暂无认证

  • 2浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

在上篇,as3反射基础上,实现,类对象成员变量批量复制

Jave.Lin 发布时间:2013-06-26 18:23:32 ,浏览量:2

package
{
	import flash.net.getClassByAlias;
	import flash.utils.getDefinitionByName;
	import flash.utils.getQualifiedClassName;

	/**
	 * 批量数据处理工具类
	 * @author jave.lin
	 * @date 2013-6-26
	 */	
	public class DataBatchHandleUtil{
		/**
		 * 将指定的from数据源对象,制作到to目标数据对象
		 * */
		public static function copyData(from:Object, to:Object):void{
			var aClsStr:String = getQualifiedClassName(from);
			var bClsStr:String = getQualifiedClassName(to);
			if(aClsStr != bClsStr) throw new Error("copyData(from,to) from与to的类型不一制");
			var cls:Class = getDefinitionByName(aClsStr) as Class;
			var varNames:Vector. = ReflectionUtil.getTypeVarsNameArr(cls);
			for each (var k:String in varNames){
				to[k] = from[k];
			}
		}
	}
}

调用:

class Test{
	public var a:String;
	public var b:String;
	public var c:String;
	
	public function toString():String{
		return "a:" + a + " b:" + b + " c:" + c;
	}
}

var t1:Test = new Test();
t1.a = "1";
t1.b = "2";

var t2:Test = new Test();
DataBatchHandleUtil.copyData(t1, t2);

//输出:a:1 b:2 c:null
trace(t2);

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.0422s