Quote Originariamente inviata da Toma81 Visualizza il messaggio
Il problema sta nel ritorno del metodo setVolume in quanto ritorna sempre "-2" come se nella posizione data dell'array ci sia già un oggetto.
Il punto è che facendo 3 volte mensola.setVolume con lo stesso libro/np, il primo probabilmente (anzi quasi certamente, da quanto dici) ha successo e poi chiaramente il secondo fallisce con -2. Quindi il problema è l'uso sbagliato ... non tanto il metodo setVolume in sé.


Riguardo il setVolume ci sono 2 finezze:
- Usa || invece che | . Il primo è il OR logico con comportamento "short-circuit". Se posizione<0 è già true, non perde tempo a valutare l'altro operando.
- NUM_MAX_VOLUMI lo intendi come il numero massimo di volumi oppure come la posizione massima che è ancora lecita? Perché se lo si intende (e dal nome io penserei così) come il numero massimo, allora la sua posizione è esclusa (essendo zero-based), quindi sarebbe più corretto posizione >= NUM_MAX_VOLUMI