I can’t imagine too many instances where you should need to perform a cast like this:
String x = (String) thing.foo();
IMHO most organized code should either return an interface/abstraction with all of the necessary methods to call or only return a specific type.