Generic type reflection library for Java