Как мы видим из javaDoc, BigInteger
не является подклассом Integer
:
java.lang.Object java.lang.Object
java.lang.Number java.lang.Number
java.math.BigInteger java.lang.Integer
И это причина того, что кастинг от BigInteger
до Integer
невозможен.
Приведение java-примитивов будет выполнять некоторое преобразование (например, приведение от double
к int
), в то время как приведение типов никогда не преобразует классы.