自省就是内省,内省在反射包里,是利用反射实现的,内省可以算是对反射的扩充,二者不是一个概念。
内省主要说的,一个类该做哪些事情由这个类本身就决定了,而非外部调用者。
比如一个类只有get和set方法,那么明显这个类的主要任务就是封装数据,则把这个类传入对应内省构造器中,无须你在挨个set。
或者一个负责计算某些值,那你可以要求这个类所有计算方法必须以“compute”开头,则将这个类自动运行而无需关心该计算哪些。
====================================================
反射 与 自省 都是用来判断一个语言是否是动态语言 的标准
下面是 它们的定义(计算机编程中)
反射(reflection)
:
可以在运行时获得对象的类型信息。比如对于一个JAVA对象,它的类型信息包括
1,这个对象的所属的类(class)
2,这个类 的 构造器(constructor)
2,这个类 中 声明的方法(method)
3,这个类中 声明的属性(field)
4,这个类 中 声明的注解(annotation)
5,这个类 的 父类(superclass)
6,这个类 实现的 接口(interface)
自省(
introspection
)
:
默认构造(如通过默认的构造函数可以给一个po中的多个属性赋值)
检查某些事物以确定它是什么、它知道什么以及它能做什么。
对象 的类型信息 就是描述 这个对象 是什么,知道什么,以及能做什么。
我感觉反射 与 自省 其实是一回事,
只是在JAVA中把自省说成反射,在PYTHON中把反射说成自省。
不知道为什么一种事物会有两种说法。。。
分享到:
相关推荐
java反射全解(反射原理+反射API详解+反射与数组+反射与泛型+反射源码与性能开销+反射优缺点+反射与内省)
4.9反射内省.txt.xmind
NULL 博文链接:https://newjueqi.iteye.com/blog/397132
JAVA的内省机制(introspector)与反射机制(reflection).docx
JAVA反射机制、注解、动态加载类、动态调用对象方法
特别详细的java内省思维导图,全方面介绍java内省的功能以及用法用处。
酷炫javaweb后台系统适合初学者【里面有封装 反射内省等】界面很nice 实现了用户模块,技术由浅入深,纯servlet 以及对servlet进行封装处理!
最小代码反射 JavaBean属性的低级反射和自省功能。 它支持字节码生成、注释和类型。
该项目旨在提供重型重构和内省工具,可以独立使用或作为文本编辑器的后端来提供智能代码完成。
内省机制
小议布赖恩·温的公众理解科学理论研究内省模型.doc
pgi, ( 实验/无维护) gtk+/for自省绑定 PGI - 纯 python GObject内省绑定GObject自省绑定使用 ctypes 和 cffi ( 可选) 在纯 python 中编写。 API与 PyGObject 兼容。开发状态:警告:没有实现/支持许多内容。查看
JavaBean及内省,介绍了JavaBean的概念、属性、使用、执行原理以及对内省的介绍
Introspected 可序列化数组和JSON友好对象的内省
这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods...
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
NULL 博文链接:https://tianyami.iteye.com/blog/1576854
主要介绍了Java 内省(Introspector)深入理解的相关资料,需要的朋友可以参考下
包括其modifiers(诸如public,static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。本文借由实例,大面积...
Obstruct 利用这一点来内省和与块交互: #import …obstr_block_apply_array(^(id a, NSString *b, NSNumber *c) { … }, @[ self, @"string", @5 ]);块 ABI 结合了块使用的类型的字符串编码。 虽然 Obstruct 目前...