博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取类的详细信息
阅读量:5039 次
发布时间:2019-06-12

本文共 2310 字,大约阅读时间需要 7 分钟。

 

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

你可能感兴趣的文章
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>
使用ionic cordova build android --release --prod命令打包报有如下错误及解决方法
查看>>
BZOJ 2338 HNOI2011 数矩形 计算几何
查看>>
关于页面<!DOCTYPE>声明
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
C++标准库vector使用(更新中...)
查看>>
cocos2d-x 2.2.6 之 .xml文件数据读取
查看>>
枚举的使用
查看>>
BZOJ 1531 二进制优化多重背包
查看>>
BZOJ 2324 (有上下界的)费用流
查看>>
python3基础06(随机数的使用)
查看>>
在ASP.NET中操作EXCEL文件
查看>>
BP神经网络的直观推导与Java实现
查看>>
python学习之路,基础知识-列表(list)
查看>>
动态加载多国语言 ---- cookie + 浏览器
查看>>
《Java大学教程》—第9章 软件质量
查看>>
Zookeeper系列(二)特征及应用场景
查看>>