Dr_House
27-11-2005, 16.03.48
Salve, ho un piccolo dubbio riguardo a Clone.
Avrei ragione di credere che String possegga il proprio metodo Clone, ma questo è stato messo in dubio da un programmatore che reputo più esperto di me quindi vorrei cercare dei chiarimenti:
Scrivo un codice di esempio:
class Attivita{
String nome;
int durata;
...
...
...
...
vari metodi
...
...
...
public Object Clone(){
try[
Attivita at = (Attivita)super.clone();
at.nome = nome;
at.durata = durata;
return at;
}
catch(CloneNotSupportedException e){
return null;
}
}
}
Io sostengo che questa non è una copia profonda in quanto la riga
at.nome=nome;
copia l'indirizzo dell'oggetto nome non il valore in esso contenuto.
lui sostiene che invece ritorna una copia profonda in quanto non vi è side effect sull'oggetto puntato da nome
Chi dei dueha ragione?
Grazie :)
Avrei ragione di credere che String possegga il proprio metodo Clone, ma questo è stato messo in dubio da un programmatore che reputo più esperto di me quindi vorrei cercare dei chiarimenti:
Scrivo un codice di esempio:
class Attivita{
String nome;
int durata;
...
...
...
...
vari metodi
...
...
...
public Object Clone(){
try[
Attivita at = (Attivita)super.clone();
at.nome = nome;
at.durata = durata;
return at;
}
catch(CloneNotSupportedException e){
return null;
}
}
}
Io sostengo che questa non è una copia profonda in quanto la riga
at.nome=nome;
copia l'indirizzo dell'oggetto nome non il valore in esso contenuto.
lui sostiene che invece ritorna una copia profonda in quanto non vi è side effect sull'oggetto puntato da nome
Chi dei dueha ragione?
Grazie :)