C'è un evidente errore nel tuo codice, deducibile direttamente dal tuo ragionamento.
Dici che hai 4 campi: due di tipo "int" e due di tipo "Integer".
Ora, andando di reflection, arriverai al primo dei due campi di tipo Integer.
Ottieni tale campo e fai questa operazione:
codice:
newValue = f.getType().cast(newValue);
Cioè, stai assegnando alla variabile "newValue" il valore del cast... il problema di fondo è che con quell'istruzione tu stai cercando di castare l'attuale valore di "newValue" (che è uno String) in un Integer. E questo non è possibile (se sai cos'è un cast).
Osserva bene cos'hai scritto nella dichiarazione (+ inizializzazione) della variabile "newValue":
codice:
Object newValue = "9999999"; // <-- E' un oggetto di tipo String
Ciao.