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