一.介绍 objc_copyClassNamesForImage:拷贝动态库类列表,也即当前工程下自己创建的所有类 objc_getClassList:获取所有类列表,也即当前工程下所有类(含系统类.cocoPods类) 二.代码 // NSBundle+XYQInfomation.m // 运行时 #import "NSBundle+XYQInfomation.h" #import <objc/runtime.h> #import <dlfcn.h> ///…
我们知道,KVC+Runtime可以做非常多的事情.有了这个,我们可以实现很多的效果. 这里来个福利,利用KVC+Runtime获取类/对象的所有成员变量.属性.方法及协议: 并利用它来实现字典转模型. 废话不多说,直接上代码: 1.工具类(其实就是NSObject的一个分类)头文件 #import <Foundation/Foundation.h> @interface NSObject (YSRuntime) /** 返回当前类的属性数组 @return 属性数组(如:"name…
Runtime获取类的属性列表和方法列表 Runtime很强大,他使得OC中没有真正意义上的私有属性和私有方法,我们可以利用OC的运行时拿到一个类的任何方法和任何属性,然后动态的去调用方法,objc_megsend(),甚至可以在运行时动态的为一个类去添加属性和方法,此篇博客要学习的是两个知识点: 获取对象的所有属性  获取对象的所有方法 为了方便,我们可以在项目中为NSObject添加一个category,增加下面两个方法,这样我们就可以轻轻松松获得每个类的所以方法和所以属性了,记得导入run…
//定义Person类 class Person: NSObject { var name: String? //注意这里基本数据类型我定义的是必选属性 var age: Int = override init() { super.init() } // MARK: - 定义类方法 查看本类的属性列表 class func demo() -> () { var outCount: UInt32 = //调用runtime 方法 class_copyPropertyList 获取类的公有属性列表…
0 Java反射机制 反射(Reflection)是 Java 的高级特性之一,是框架实现的基础. 0.1 定义 Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制. 一般而言,当用户使用一个类的时候,应该获取这个类,而后通过这个类实例化对象,但是使用反射则可以相反的通过对象获取类中的信息. 通俗的讲反射就是可以在程序运行的时候动态装载…
目录 一.获得类的运行时结构 1. 获得类的名字 2. 获得类的属性 获取属性列表 获取指定属性 3. 获取类的方法 获得类的方法列表 获得指定方法 4. 获得的构造器 获得构造器列表 获得指定构造器 二.通过反射动态创建对象 1. 使用newInstance() 2.先获取构造器再创建对象 三.通过反射调用对象的方法 四.通过反射操作对象的属性 五.通过反射获取泛型信息 1. 获取方法参数类型 2. 获取方法带泛型的参数类型 3. 从参数类型(ParameterizedType)中获取泛型信息…
关键技术剖析 1.java.lang.reflect包实现了java的反射机制,在使用反射机制时,需要导入该包. 2.Class类的forName方法能够根据类名加载类,获得类的Class对象. Class类的getSuperclass方法获得父类的Class对象:getDeclaredFields方法获取类声明的属性,返回的是一组java.lang.Field对象:getDeclaredConstructors方法获得类的构造方法,返回的是一组java.lang.reflect.Constru…
<?php// Yii 2// namespace yournamespace;// use Yii; /** * 缓存辅助类 */ class CacheHelper { /** * 缓存键 */ const KEY_SIMPLE_LIST = 'simple.list'; /** * 清除所有缓存 */ public static function ClearCache() { $objClass = new \ReflectionClass(__CLASS__); // 此处获取类中定义的…
在C#中,实现动态获取类和方法主要通过反射来实现,要引用System.Reflection. public ActionResult GetControllerAndAction() List<Type> controllerTypes = new List<Type>(); //创建控制器类型列表 var assembly = Assembly.Load("MySoft.UI"); //加载程序集 controllerTypes.AddRange(assemb…
c#通过反射获取类上的自定义特性 本文转载:http://www.cnblogs.com/jeffwongishandsome/archive/2009/11/18/1602825.html 下面这个是笔者在以前的一个项目中用到的.当时是为了在导出excel报表的时侯,通过自定义特性,包含一些可配置的特性在里面.具体的操作excel不是本文重点,本文不会多做说明.下面只写个示例,简单说明一下如何通过反射获取自定义特性.示例只在类和属性上使用了自定义特性.读者可以按照实际的项目需求,合理使用自定义…