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

tva*_*son 77 language-agnostic reflection

反思一词的起源是什么?这似乎更像是内省.为什么不称它为何?

内省:向内看; 具体而言,是自我检查的行为或过程.

反思:

  1. 反映的行为或反映的状态.
  2. 一个图像; 表示; 对方
  3. 固定思想的东西; 详细的思考
  4. 思考发生在考虑或冥想.

Pio*_*cki 60

关于反思的法国维基百科文章有一个有趣的答案(这里)

反射可以分为两部分:

  • 内省:一个程序可以检查自己.
  • 代祷:程序可以修改其状态/含义.

因此,反思是一种比内省更"强大"的属性.这就是为什么你说类型内省能够在运行时知道类型(并且更改它们是另一个动作:转换/转换).

编辑:实际上我刚刚意识到第一个答案就是说^^.拔掉自己的时间......

  • 阅读法语维基百科的文章,我意识到在法语中,"反思"一词可能与英语中的"反身性"概念关联得更紧密 - 这些概念本身就是一种运作.这似乎是理解该术语的正确方法,因为它适用于编程语言. (2认同)

tva*_*son 27

反思来自于"自我检查,自我修改和自我复制"的思想,反映了一个人的自我以达到改变的目的.在编程中,您使用反射来检查程序本身的结构,而不是仅仅检查它.您得到的是您可以用来修改它的程序的表示,而不是它运行的数据.

更多信息可以在维基百科文章中找到..


小智 5

反射一词来自 Brian Cantwell Smith 1982 年的博士论文,可在http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf找到

所谓的反射通常只是内省,即对元数据的访问。Smith 对反射的要求包括从元数据返回的因果联系,而这通常是缺失的部分。想象反射的一种方法是访问实现,而不仅仅是计算的一些新实例的实现,而是计算对它自己的实现的访问。当然,Java 的原始反射 api 被错误命名,因为它在这个意义上不是反射的。