当前位置: 首页 > 面试题库 >

Java内省和反思

嵇丰
2023-03-14
问题内容

谁能解释Java反射和自省的用法?什么时候需要同时使用?


问题答案:

反射(摘自[Oracle

Java教程](http://docs.oracle.com/javase/tutorial/reflect/index.html))

反射通常由需要检查或修改Java虚拟机中运行的应用程序的运行时行为的程序使用。这是一个相对高级的功能,只应由对语言基础有很深了解的开发人员使用。考虑到这一警告,反射是一种强大的技术,可以使应用程序执行原本不可能的操作。

内省(摘自[Sun Java

bean教程存档](http://web.archive.org/web/20090226224821/http://java.sun.com/docs/books/tutorial/javabeans/introspection/index.html))

自省是分析bean的设计模式以揭示bean的属性,事件和方法的自动过程。此过程控制Bean操作和属性的发布和发现。

内省使用反射,可以将内省和反射之间的关系视为类似于JavaBeans和其他Java类。

也许值得一看“反射与自省:暴露的对象”,其中详细介绍了性能和用法。请注意,本文已过时,1998年。

希望这可以帮助。



 类似资料:
  • 下面的代码被认为是运行时反射还是类型内省? 我想在编译阶段使用它,不想在运行时使用任何资源(包括时间)。它是否使用任何运行时资源?

  • 我们将在这里讨论静态内省,静态内省是程序在编译时检查对象类型的能力。 换句话说,它是一个在编译时与类型交互的编程接口。 例如,你曾经想检查一些未知类型是否有一个名为foo的成员? 或者在某些时候你需要迭代结构的成员? struct Person { std::string name; int age; }; Person john{"John", 30}; for (auto& membe

  • 本文向大家介绍Java内省实例解析,包括了Java内省实例解析的使用技巧和注意事项,需要的朋友参考一下 图像中轮廓的个数,里面vector的size代表了轮廓上点的个数。了解JavaBean 内省对应的英文单词为IntroSpector,它主要用于对JavaBean进行操作,JavaBean是一种特殊的Java类,其中的某些方法符合某种命名规则,如果一个Java类中的一些方法符合某种命名规则,则可

  • 我试图模仿我的浏览器行为在一个多部分/表单数据POST请求使用org.apache.http.entity.mime.MultipartEntityBuilder 我的浏览器只发送内容配置,但不发送内容类型或内容传输编码头。我尝试使用MultipartEntityBuilder。addPart()和addTextBody()但默认情况下都会添加这些标题: 我想要什么(我的chrome浏览器的功能)

  • 我正在尝试从我的前端应用程序访问KeyClope服务器/openid connect/token/introspect中的introspectendpoint,但我遇到下一个错误: 使用邮递员,卷曲或节点应用程序此请求工作正常,但从我的前端应用程序使用获取方法会出现此错误。我不确定是否可以从浏览器中的前台应用程序查询内省endpoint,或者是否只能从服务器应用程序查询。 其他endpoint,如

  • 描述 (Description) introspection工具可用于了解您的类提供的属性和操作。 BeanUtils包依赖于JavaBeans规范,该规范确定特定bean类的可用属性。 内省机制可以从版本1.9.0开始定制,并使应用程序能够更改或扩展bean属性的默认发现。 您可以使用BeanIntrospector接口实现此BeanIntrospector 。 通过实现此接口,我们能够处理特定