Convertir cadena hexadecimal a int

Estoy tratando de convertir una cadena que tiene 8 caracteres de código hexadecimal en un entero para que pueda hacer una comparación int en lugar de comparaciones de cadenas sobre muchos valores diferentes.

Sé que esto es bastante trivial en C ++ pero necesito hacerlo en Java. El caso de prueba que necesito satisfacer es esencialmente para convertir "AA0F245C" a int y luego volver a esa cadena para que sepa que se está convirtiendo a la derecha.

He probado lo siguiente:

int decode = Integer.decode("0xAA0F245C");  // NumberFormatException
int decode2 = Integer.decode("AA0F245C"); //NumberFormatException
int parseInt = Integer.parseInt("AA0F245C", 16); //NumberFormatException
int valueOf = Integer.valueOf("AA0F245C", 16); //NumberFormatException

También he intentado hacerlo dos caracteres a la vez y multiplicar los resultados, lo que funciona la conversión pero el número no es correcto.

int id = 0;
for (int h = 0; h < hex.length(); h= h+2)
{
    String sub = hex.subSequence(h, h+2).toString();

if (id == 0)
    id = Integer.valueOf(sub, 16);
else
    id *= Integer.valueOf(sub, 16);             
 }
//ID = 8445600 which = 80DEA0 if I convert it back. 

No puedo usar bibliotecas de terceros para que lo sepas, así que esto se debe hacer en las bibliotecas estándar de Java.

De forma anticipada, muchas gracias por su ayuda.

Respuestas a la pregunta(7)

Su respuesta a la pregunta