Certo che può... ma int è un tipo di dato primitivo, non un oggetto... pertanto non possiede alcun metodo (quindi non possiede il metodo compareTo() ). Devi forzare un cast a Integer (ed il compilatore si occuperà automaticamente dell'auto-boxing):
codice:
public int compareTo(Libro1 altroLibro) {
Integer val = annoPubblicazione; // Auto-boxing
return val.compareTo( altroLibro.getAnnoPubblicazione() );
}
In questo esempio si fa uso (per ben due volte) dell'auto-boxing introdotto da Java 5.
Se non vuoi scomodare i meccanismi di auto-boxing:
codice:
public int compareTo(Libro1 altroLibro) {
return (annoPubblicazione<altroLibro.getAnnoPubblicazione() ? -1 :
(annoPubblicazione==altroLibro.getAnnoPubblicazione() ? 0 : 1));
}
Ciao.