示例效果最好,想象 Object 是一个 Byte 并且我们尝试将它转换为一个长...
目前字节码看起来有点像这样
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 的可能性,这是一件坏事吗?