The upcoming version of Java 9 introduces modularizations. One implication is that reflectively locating and accessing classes, methods/constructors, fields may not be possible anymore if using getMethods, getFields, getConstructors and the like. Rather one needs to use getDeclaredMethods, getDeclaredFields, getDeclaredConstructors etc. In addition it may be the case that one needs to resolve the entire inheritance tree to make sure that all contexts get tested in the case that some of these reflective methods are overwriting existing ones and located in classes of modules that are not open.
The core reflection has been totally rewritten and should work from Java 1.6 onwards. Starting with Java 1.8 MethodHandle support is implemented and taken advantage of.