Allora... c'è da dire che molte persone considerano gli int e gli Integer come delle cose assolutamente identiche ed interscambiabili.
Invece non è così: int è un tipo di dato cosiddetto primitivo, mentre Integer è un oggetto e le due cose sono profondamente diverse.
Questo significa che ci sono vari modi per rappresentare un intero: tramite una variabile di tipo int, oppure tramite un oggetto.
Java offre una classe apposita (detta wrapper) per gli interi chiamata Integer, ma nessuno mi vieta di crearmene una io:
codice:
public class MioIntero {
private int intero;
public MioIntero(int intero) { this.intero = intero; }
public int getIntero() { return intero; }
public String toString() { return "" + intero; }
}
Se io stampo un oggetto di questa classe con un System.out.println() vedrò apparire a video il numero che rappresenta, ma ciò non toglie che io non sto lavorando con un intero, ma con un oggetto di tipo MioIntero.
Ora, io non so cosa ritorna il metodo key(), questo devi dirmelo tu.
Se ritorna un intero, nel senso che ritorna un int, allora il metodo getXY() fa qualcosa di estremamente sbagliato: tenta di assegnare un intero ad un oggetto!!
Se, invece, ritorna un oggetto che "rappresenta" un intero, allora il discorso è diverso.
Per sapere che tipo di oggetto ritorna puoi utilizzare questa istruzione:
codice:
System.out.println(keya.getClass());
Ciao.