Autoboxing / Unboxing ao converter Integer para int usando o método 'cast'
Aqui está um caso muito simples: Estou tentando converter um tipo de objeto em um primitivo como este:
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
Este é o código-fonte do método de conversão da classe '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();
}
Por que isso está acontecendo? O mesmo está acontecendo com outras primitivas também.