获取类的详细信息

 

 1 package com.newtempo.utils{
 2     import flash.utils.describeType;
 3     import flash.utils.getDefinitionByName;
 4     import flash.utils.getQualifiedClassName;
 5     
 6     /**
 7      * 获取类的详细信息 
 8      * @author whk
 9      * 
10      */    
11     public class GetClassInfo{
12         
13         private static var classCache:Object = new Object();
14         /**
15          * 获取此类的信息 
16          * @param target 分析的对象
17          * @return 包含此类信息的对象
18          * 
19          */        
20         public static function describeType(target:*):ClassInfo{
21             var className:String = getQualifiedClassName(target);
22             if(className in classCache){
23                 return classCache[className];
24             }
25             //获取此类的全部信息
26             var typeInfo:XML = flash.utils.describeType(target is Class ? target : getDefinitionByName(className) as Class);
27             var methodNameList:XMLList = typeInfo..method.@name;
28             var methodNames:Array = new Array();
29             methodNames = getList(methodNames,methodNameList);
30             
31             var propertyNameList:XMLList = typeInfo..accessor.@name + typeInfo..variable.@name;
32             var propertyNames:Array = new Array();
33             propertyNames = getList(propertyNames,propertyNameList);
34             
35             var classInfo:ClassInfo = new ClassInfo();
36             classInfo.className = className;
37             classInfo.methodNames = methodNames;
38             classInfo.typeInfo = typeInfo;
39             classInfo.propertyNames =propertyNames;
40             
41             return classInfo;
42         }
43         
44         private static function getList(arr:Array, xmlList:XMLList):Array{
45             for each(var str:String in xmlList){
46                 arr.push(str);
47             }
48             return arr;
49         }
50     }
51 }
52 class ClassInfo{
53     /**包含此类的所有方法数组 **/    
54     public var methodNames:Array;
55     /**包含此类的所有属性数组 **/    
56     public var propertyNames:Array;
57     /**包含此类的详细信息的XML**/    
58     public var typeInfo:XML;
59     /**此类名 **/    
60     public var className:String;
61     public function ClassInfo(){
62         
63     }
64 }

参考自:http://bbs.blueidea.com/thread-2662636-1-1.html

转载于:https://www.cnblogs.com/iwhk/archive/2012/10/31/2748196.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值