内省(Introspect)是什么意思?

发布于 2022-09-07 22:50:40 字数 80 浏览 9 评论 0

内省(Introspect)是什么意思?麻烦大佬通俗一点说一下,百度了一下也不是很懂。感觉和“套接字”,“鲁棒性”,“句柄”之类的词一样难以理解。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烦人精 2022-09-14 22:50:40

retrospection: n. 回顾,回想;(过去事实等的)对证。
introspection: n. 内省,反省。

retrospectionintrospection有什么不同呢?retrospection强调的是re-这个词根,是向回看,回顾。而introspection强调的是in-这个词根,是向内看,观察自己的内心深处。

内省(英文:introspection)或内观,指的是人通过向内的检视,对自己所能了解的意识经验陈述出来。内省自古以来为西方和东方哲学家所讨论,而内省法一直是心理学家用来研究内在心理活动的主要方法之一,基本上是让被试者口述心理感受。 -- 维基百科

用在计算机方面:

内省(Introspector)Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName, setName来得到其值或者设置新的值。通过getName/setName来访问name属性,这就是默认的规则。
Java中提供了一套API用来访问某个属性的getter/setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器(PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来调用这些方法。 -- 百度百科

举个实例来看一下:

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
...
BeanInfo beanInfo=Introspector.getBeanInfo(UserInfo.class);
PropertyDescriptor[] proDescrtptors=beanInfo.getPropertyDescriptors();
// 在这里我们就得到了这个Bean里的所有属性

从这里我们可以看到,所谓内省其实就是让Java Bean暴露出自己所有的内部属性,以供我们逐个获取或修改其内部的属性值。完整的示例可以看这里

暮凉 2022-09-14 22:50:40

GraphQL 自己查询自己来发现自己提供的功能,包括查询支持的字段和提交支持操作。

GraphQL 通过查询__schema字段来向 GraphQL 询问哪些类型是可用的

{
  __schema {
    types {
      name
    }
  }
}

这个功能,就是GraphQL的内省,相当于提供了丰富的接口文档。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文