実体と違う型へキャストすると出ます。
出るコード
Object o = "hello";
Integer n = (Integer) o; // 中身は String なのに Integer へ
エラーメッセージ
Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer
直し方
キャスト前に instanceof で型を確認します。ジェネリクスで型を固定すると、そもそも防げます。