Grazie per l'intervento, stavolta il ragno ha preso un granchio
effettivamente il problema stava nella definizione di MAXLUNGHEZZA
ecco dunque la versione corretta:
public class CodaArray<T> implements Coda<T> {
private T[] dati;
private Integer estrazione;//indice dove estrarre il prossimo dato
private Integer inserimento;//indice dove inserire il prossimo dato
private static final int MAXLUNGHEZZA=100;
public CodaArray() {
this(MAXLUNGHEZZA);
}
public CodaArray(int lung) {
dati=(T[])new Object[lung];
inserimento=0;
estrazione=0;
}
...
Metto anche un link ad una pagina di documentazione in cui si cita esplicitamente la chiamata del costruttore con this e un secondo link ad un'altra pagina in cui viene indicata la sequenza dei passi al momento dell'istanza di un oggetto in cui si legge (nellelenco numerato da 1 a 5) che la chiamata del costruttore dentro al costruttore (quindi come in this(MAXLUNGHEZZA);) viene fatta prima di dare valore agli attributi (nel nostro caso private final int MAXLUNGHEZZA=100;), il fatto di dichiarare private static final int MAXLUNGHEZZA=100; ne dà valore invece in compile-time e quindi è pienamente disponibile al momento dell'istanza.