Prior to the release of Java 5, the Java library had 1 class that provided access to type information at runtime - java.lang.Class. However, with the introduction of generics in Java 5, this has been extended significantly. Dealing with all these classes, and working with them at runtime, is overly complex, and reduces the power of generics.

Orthodox is a library that makes it easier to work with the Java type system at runtime.