反射 与 自省 都是用来判断一个语言是否是动态语言 的标准
他们有区别吗?我感觉都一样。
下面是 它们 的定义(计算机编程中)
反射(reflection) :
可以在运行时获得对象的类型信息。 比如对于一个JAVA对象,它的类型信息包括
1,这个对象的所属的类(class)
2,这个类 的 构造器(constructor)
2,这个类 中 声明的方法(method)
3,这个类 中 声明的属性(field)
4,这个类 中 声明的注解(annotation)
5,这个类 的 父类(superclass)
6,这个类 实现的 接口(interface)
自省( introspection ) :
检查某些事物以确定它是什么、它知道什么以及它能做什么。
对象 的 类型信息 就是描述 这个对象 是什么,知道什么,以及能做什么。
我感觉 反射 与 自省 其实是一回事, 只是在JAVA中把自省说成反射,在PYTHON中把反射说成自省。
不知道为什么一种事物会有两种说法。。。
附件里有一个关于java反射的教程(翻译自SUN官方教程),
分享一下。。。