tu hai scritto questo:
codice:
if( cmpLibro(book[4],bookName,pag,4)==true)
L'errore sta in book[4].
Quando passi utilizzi un array come parametro di un metodo devi omettere sia la dimensione sia le parentesi quadre.
Come ti diceva in precedenza LeleFT per la variabile "i" non devi mettere il 4.
Ti spiego meglio.
1) Nella classe Libro hai definito il metodo cmpLibro(...) in questo modo:
codice:
cmpLibro(Libro[] l, String blaBlaBla, int pag, int numeroElementi){ ... }
in questo caso Libro[] è una definizione e quindi se vuoi che li venga passato un array di libri devi mettere le parentesi quadre. Se non le mettessi significherebbe che vorresti gli fosse passato UN solo oggetto di tipo Libro. La dimensione nelle parentesi non devi metterla perchè in seguito potrai passare a quel metodo un array di libri di qualunque dimensione.
Ti ricordo che la dimensione dell'arry la prendi con l'attributo length. Ad esempio per il nostro parametro "Libro[] l" puoi fare così:
codice:
int dimension = l.lenght;
2) Quando invece il metodo viene invocato gli devi passare l'array di libri in questo modo:
codice:
unCertoLibro.cmpLibro(listaLibri, titolo, pag, nElem);
in sostanza quì mancano le parentesi quadre e anche la dimensione. Non ti manca nulla però. Lui sa che quello è un array perchè l'hai definito da qualche parte e per lo stesso motivo conosci anche la dimensione.
Vabò, :ciauz