Ciao ho un dubbio su Comparable e Comparator.
Allora Comparable effettua un ordinamento naturale tra l'oggetto che esegue il metodo e quello specificato dall'argomento mentre Comparator effettua solo un ordinamento totale.Qui sorge il dubbio:Comparable non può effettuare un ordinamento naturale su oggetti di tipo int?Cioè se ho:

codice:
class Libro1 implements Comparable<Libro1> {
    private String titolo;
    private int annoPubblicazione;

    public Libro1(String titolo, int annoPubblicazione) {
        this.titolo = titolo;
        this.annoPubblicazione = annoPubblicazione;
    }

    public String getTitolo() {
        return titolo;
    }

    public int getAnnoPubblicazione() {
        return annoPubblicazione;
    }

    public String toString() {
        return titolo + ", " + annoPubblicazione;
    }

    public int compareTo(Libro1 altroLibro) {
       
        return getAnnoPubblicazione().compareTo(altroLibro.getAnnoPubblicazione());
        
    }
}
Il compilatore non riconosce l'int;quindi con Comparable posso usare solo tipi riferimento(es:String),mentre con Comparator solo tipi primitivi(es:int)?