In the Java programming language, the application of the reflection API to interrogate JavaBeans.

Introspection makes several assumptions about the structure of a class as per the JavaBeans specification, utilizing established best practices such as naming conventions and well-known design patterns to derive a suitable model of an object. For example, it deduces the existence of a property of a given name, based on the existence of getter and setter methods following established nomenclature. In this way, it provides the mechanism supporting the software component model of JavaBeans.

In more recent applications such as in J2EE, the principles of introspection are applied to more general "bean" objects, allowing a much broader range of objects to integrate with both development tools and application software.