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.