ClassLoaders: what are they and why can they cause surprising ClassCastException? | LetsGit.IT