Object が Byte であり、それを long にキャストしようとしていると想像してください...
現在、バイトコードはこのように少し見えます
Byte b = Byte.valueOf(1);
Object source = b;
Long long = (Long) source; // fails CCE because a Byte is not a Long
long value = long.longValue();
Number へのキャストの方がよいでしょうか?
Byte b = Byte.valueOf(1);
Number number = (Number) b; // f
long value = number.longValue();
本当の問題はもちろん、ClassCastExceptions の可能性を減らしたことです。それは悪いことですか?