[[reflection]]
= New Reflection Interfaces

AspectJ 5 provides a full set of reflection APIs analogous to the
`java.lang.reflect` package, but fully aware of the AspectJ type system.
See the javadoc for the runtime and tools APIs for the full details. The
reflection APIs are only supported when running under Java 5 and for
code compiled by the AspectJ 5 compiler at target level 1.5.

[[reflection_api]]
== Using `AjTypeSystem`

The starting point for using the reflection apis is
`org.aspectj.lang.reflect.AjTypeSystem` which provides the method
`getAjType(Class)` which will return the `AjType` corresponding to a
given Java class. The `AjType` interface corresponds to
`java.lang.Class` and gives you access to all of the method, field,
constructor, and also pointcut, advice, declare statement and inter-type
declaration members in the type.
