Grazie per la risposta.

Per quanto riguarda i controlli ho provato a ridurre i controlli in un solo "if", così:

codice:
public int setVolume(Libro libro,int posizione){   
        if((posizione<0) || (posizione>NUM_MAX_VOLUMI) || (volumi[posizione]!=null))
            return -1;    //posizione non valida
      
         volumi[posizione]=libro;
         return posizione;
    }

Ok ho corretto con quello che mi hai detto e l'errore è risolto. Ma quindi non posso mettere più controlli sul ritorno di uno stesso metodo?