代码之家  ›  专栏  ›  技术社区  ›  tvanfosson

为什么反思被称为反思而不是内省?

  •  76
  • tvanfosson  · 技术社区  · 17 年前

    反射一词的由来是什么?这更像是自省。为什么不叫这个?

    Introspection

    Reflection :

    1. 反射反射的行为或被反射的状态。
    2. 形象;代表性;对应方
    3. 对某物的固定想法;深思熟虑
    4. 沉思在考虑或冥想中产生的想法。
    6 回复  |  直到 17 年前
        1
  •  65
  •   G-Nugget    12 年前

    在法国维基百科的文章中有一个有趣的答案供大家思考( here )

    反射可以分解为两部分:

    因此,反思是比内省“更强”的属性。这就是你为什么说 type introspection 用于在运行时了解类型(更改类型是另一个操作:转换/转换)。

    编辑:事实上,我刚刚意识到第一个答案正是这么说的。是时候给自己拔掉电源了。。。

        2
  •  27
  •   Robin Rodricks    16 年前

    反思源于“自我检查、自我修改和自我复制”的理念,反思自我以实现改变。在编程中,您使用反射在使用它的上下文中检查程序本身的结构,而不仅仅是检查它。您得到的是可以用来修改它的程序的表示,而不是它所操作的数据。

    at the wikipedia article. .

        3
  •  5
  •   Ed Puckett    13 年前

    http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf

    所谓的反射通常只是内省,即访问元数据。史密斯对反思的要求包括 因果关系的 拥有 实施当然,Java最初的反射api被错误命名,因为它在这个意义上不是反射的。

        4
  •  4
  •   dancavallaro    17 年前

    还有一个称为类型内省的概念,它指的是在运行时确定对象类型的能力。

    编辑:我知道你的问题是不可知语言的,但在Java中,反射用于标识对象具有哪些成员,而内省允许您标识对象具有哪些JavaBeans属性,这就是内省类位于Java.beans包中的原因。不过,我不确定在其他语言中,这两个术语的确切区别是什么,

        5
  •  1
  •   Guge    16 年前

    在.Net中,我认为反射这个术语非常合适,因为它不是被检查的类型本身,而是代码的清单,它只是一个描述。

        6
  •  1
  •   Greg Graham    16 年前