Discovering Java's runtime type information