Originariamente inviato da cavalieredimart
1) Nella clase myFrame, la funzione dentro (in neretto) "Dovrebbe" caricarmi nell'arraylist un nuovo calcolatore ivece... non lo fa!!! se invece metto la funzione aggiungiCalc come all'inizio della classe viene aggiunto correttamente!!! Sapete dirmi come mai la funzione dentro non mi carica un tubo??
In actionPerformed() hai creato un nuovo oggetto Station ma ... quando actionPerformed termina, quell'oggetto non è più referenziato, quindi va in pasto al g.c.
Ehm, forse non è quello che volevi fare ... rivedi il "design".

Originariamente inviato da cavalieredimart
2) X esercitarmi su un interfaccia clonable ho provveduto ad implementarla per clonare una nuova stazione, sapete dirmi se semanticamente è giusta la mia rodefinizione di object.clone()??
In linea di massima è corretto ma nota che:
- Il return null nel catch non è il massimo. Visto che la tua classe è Cloneable e supporta clone() e la super-classe è Object che sicuramente non lancia CloneNotSupportedException proprio perché la tua classe è clonabile, il CloneNotSupportedException in teoria non "dovrebbe" mai capitare. Se dovesse mai capitare, allora è un errore grave che dovresti segnalare non ritornando null ma lanciando un Error, es. InternalError.

- Hai un warning per via del "unchecked cast" a ArrayList<Calcolatore> (non lo puoi impedire ... lo puoi sopprimere con una annotazione).

- Il clone sul ArrayList fa una "shallow copy" ovvero l'ArrayList che ottieni è in effetti un nuovo oggetto, distinto dall'ArrayList originale ma gli elementi fanno riferimento agli stessi identici oggetti della collezione originale. Visto che Calcolatore è "mutabile" se cambi lo stato di un Calcolatore dalla Station clonata, "vedi" la modifica anche dalla Station originale!