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

来源:互联网 发布:刘诗诗婚纱同款 淘宝 编辑:程序博客网 时间:2024/05/19 11:48
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.<String> = 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:nulltrace(t2);