Автобокс / распаковка при приведении Integer к int с использованием метода cast

Вот очень простой случай: я пытаюсь привести тип объекта к примитиву так:

Object object = Integer.valueOf(1234);

int result1 = int.class.cast(object); //throws ClassCastException: Cannot convert java.lang.integer to int

int result2 = (int)object; //works fine

Это исходный код метода приведения класса 'Class'

public T cast(Object obj) {
    if (obj != null && !isInstance(obj))
        throw new ClassCastException(cannotCastMsg(obj));
    return (T) obj;
}

private String cannotCastMsg(Object obj) {
    return "Cannot cast " + obj.getClass().getName() + " to " + getName();
}

Почему это происходит? То же самое происходит и с другими примитивами.

Живой пример

Ответы на вопрос(1)

Ваш ответ на вопрос